You've already forked linux-packaging-mono
Imported Upstream version 6.4.0.137
Former-commit-id: 943baa9f16a098c33e129777827f3a9d20da00d6
This commit is contained in:
parent
e9207cf623
commit
ef583813eb
38
mcs/class/corlib/corefx/TaskAsyncEnumerableExtensions.cs
Normal file
38
mcs/class/corlib/corefx/TaskAsyncEnumerableExtensions.cs
Normal file
@ -0,0 +1,38 @@
|
||||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// 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.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace System.Threading.Tasks
|
||||
{
|
||||
/// <summary>Provides a set of static methods for configuring <see cref="Task"/>-related behaviors on asynchronous enumerables and disposables.</summary>
|
||||
public static class TaskAsyncEnumerableExtensions
|
||||
{
|
||||
/// <summary>Configures how awaits on the tasks returned from an async disposable will be performed.</summary>
|
||||
/// <param name="source">The source async disposable.</param>
|
||||
/// <param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||
/// <returns>The configured async disposable.</returns>
|
||||
public static ConfiguredAsyncDisposable ConfigureAwait(this IAsyncDisposable source, bool continueOnCapturedContext) =>
|
||||
new ConfiguredAsyncDisposable(source, continueOnCapturedContext);
|
||||
|
||||
/// <summary>Configures how awaits on the tasks returned from an async iteration will be performed.</summary>
|
||||
/// <typeparam name="T">The type of the objects being iterated.</typeparam>
|
||||
/// <param name="source">The source enumerable being iterated.</param>
|
||||
/// <param name="continueOnCapturedContext">Whether to capture and marshal back to the current context.</param>
|
||||
/// <returns>The configured enumerable.</returns>
|
||||
public static ConfiguredCancelableAsyncEnumerable<T> ConfigureAwait<T>(
|
||||
this IAsyncEnumerable<T> source, bool continueOnCapturedContext) =>
|
||||
new ConfiguredCancelableAsyncEnumerable<T>(source, continueOnCapturedContext, cancellationToken: default);
|
||||
|
||||
/// <summary>Sets the <see cref="CancellationToken"/> to be passed to <see cref="IAsyncEnumerable{T}.GetAsyncEnumerator(CancellationToken)"/> when iterating.</summary>
|
||||
/// <typeparam name="T">The type of the objects being iterated.</typeparam>
|
||||
/// <param name="source">The source enumerable being iterated.</param>
|
||||
/// <param name="cancellationToken">The <see cref="CancellationToken"/> to use.</param>
|
||||
/// <returns>The configured enumerable.</returns>
|
||||
public static ConfiguredCancelableAsyncEnumerable<T> WithCancellation<T>(
|
||||
this IAsyncEnumerable<T> source, CancellationToken cancellationToken) =>
|
||||
new ConfiguredCancelableAsyncEnumerable<T>(source, continueOnCapturedContext: true, cancellationToken);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user