From: Stephen Toub Date: Fri, 7 Dec 2018 18:56:32 +0000 (-0500) Subject: Add CancellationToken parameter to GetAsyncEnumerator (#21397) X-Git-Tag: accepted/tizen/unified/20190422.045933~409 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=811e34bc945ca1e294d64320cd3aba7866f8aeee;p=platform%2Fupstream%2Fcoreclr.git Add CancellationToken parameter to GetAsyncEnumerator (#21397) --- diff --git a/src/System.Private.CoreLib/shared/System/Collections/Generic/IAsyncEnumerable.cs b/src/System.Private.CoreLib/shared/System/Collections/Generic/IAsyncEnumerable.cs index ef02070..302b964 100644 --- a/src/System.Private.CoreLib/shared/System/Collections/Generic/IAsyncEnumerable.cs +++ b/src/System.Private.CoreLib/shared/System/Collections/Generic/IAsyncEnumerable.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System.Threading; + namespace System.Collections.Generic { /// Exposes an enumerator that provides asynchronous iteration over values of a specified type. @@ -9,7 +11,8 @@ namespace System.Collections.Generic public interface IAsyncEnumerable { /// Returns an enumerator that iterates asynchronously through the collection. + /// A that may be used to cancel the asynchronous iteration. /// An enumerator that can be used to iterate asynchronously through the collection. - IAsyncEnumerator GetAsyncEnumerator(); + IAsyncEnumerator GetAsyncEnumerator(CancellationToken cancellationToken = default); } } diff --git a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredAsyncEnumerable.cs b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredAsyncEnumerable.cs index 57fd481..2547065 100644 --- a/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredAsyncEnumerable.cs +++ b/src/System.Private.CoreLib/shared/System/Runtime/CompilerServices/ConfiguredAsyncEnumerable.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Runtime.InteropServices; +using System.Threading; using System.Threading.Tasks; using System.Threading.Tasks.Sources; @@ -21,8 +22,8 @@ namespace System.Runtime.CompilerServices _continueOnCapturedContext = continueOnCapturedContext; } - public Enumerator GetAsyncEnumerator() => - new Enumerator(_enumerable.GetAsyncEnumerator(), _continueOnCapturedContext); + public Enumerator GetAsyncEnumerator(CancellationToken cancellationToken = default) => + new Enumerator(_enumerable.GetAsyncEnumerator(cancellationToken), _continueOnCapturedContext); public readonly struct Enumerator {