CoreTaskExtensionsSelectTSource, TResult Method (TaskTSource, FuncTaskTSource, TResult, Boolean) |
Synchronously execute a continuation when a task completes. The supportsErrors
parameter specifies whether the continuation is executed if the antecedent task is faulted.
Namespace: Rackspace.ThreadingAssembly: Rackspace.Threading (in Rackspace.Threading.dll) Version: 1.1.0.0
Syntax
public static Task<TResult> Select<TSource, TResult>(
this Task<TSource> task,
Func<Task<TSource>, TResult> continuationFunction,
bool supportsErrors
)
<ExtensionAttribute>
Public Shared Function Select(Of TSource, TResult) (
task As Task(Of TSource),
continuationFunction As Func(Of Task(Of TSource), TResult),
supportsErrors As Boolean
) As Task(Of TResult)
public:
[ExtensionAttribute]
generic<typename TSource, typename TResult>
static Task<TResult>^ Select(
Task<TSource>^ task,
Func<Task<TSource>^, TResult>^ continuationFunction,
bool supportsErrors
)
[<ExtensionAttribute>]
static member Select :
task : Task<'TSource> *
continuationFunction : Func<Task<'TSource>, 'TResult> *
supportsErrors : bool -> Task<'TResult>
Parameters
- task
- Type: System.Threading.TasksTaskTSource
The antecedent task. - continuationFunction
- Type: SystemFuncTaskTSource, TResult
The continuation function to execute when task completes. - supportsErrors
- Type: SystemBoolean
if the continuationFunction properly handles a faulted antecedent task; otherwise, .
Type Parameters
- TSource
- The type of the result produced by the antecedent TaskTResult.
- TResult
- The type of the result produced by the continuation TaskTResult.
Return Value
Type:
TaskTResultA
Task representing the asynchronous operation. When the task completes successfully,
the
Result property will contain the result returned from the
continuationFunction.
Usage Note
In Visual Basic and C#, you can call this method as an instance method on any object of type
TaskTSource. When you use instance method syntax to call this method, omit the first parameter. For more information, see
Extension Methods (Visual Basic) or
Extension Methods (C# Programming Guide).
Exceptions
Remarks
This code implements support for the following construct without requiring the use of
/
.
try
{
TSource source = await task.ConfigureAwait(false);
}
catch
{
if (!supportsErrors)
throw;
}
return continuationFunction(task);
If the antecedent task is canceled, or faulted with supportsErrors
set to , the status of the antecedent is directly applied to the task
returned by this method; it is not wrapped in an additional AggregateException.
Version Information
.NET for Windows Store apps
Supported in: Windows 8
.NET Framework
Supported in: 4.5, 4.0, 3.5
Portable Class Library
Supported in: Portable Class Library (Legacy), Portable Class Library
Rackspace Threading Library
Supported in: 1.1, 1.0
See Also