Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

TaskExtensions.Unwrap<TResult> Method (Task<Task<TResult>>)

Creates a proxy Task that represents the asynchronous operation of a Task<Task<T>> (C#) or Task (Of Task(Of T)) (Visual Basic).

Namespace:  System.Threading.Tasks
Assemblies:   System.Core (in System.Core.dll)
  System.Threading.Tasks (in System.Threading.Tasks.dll)

public static Task<TResult> Unwrap<TResult>(
	this Task<Task<TResult>> task
)

Type Parameters

TResult

The type of the task's result.

Parameters

task
Type: System.Threading.Tasks.Task<Task<TResult>>

The Task<Task<T>> (C#) or Task (Of Task(Of T)) (Visual Basic) to unwrap.

Return Value

Type: System.Threading.Tasks.Task<TResult>
A Task that represents the asynchronous operation of the provided Task<Task<T>> (C#) or Task (Of Task(Of T)) (Visual Basic).

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type Task<Task<TResult>>. 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).

ExceptionCondition
ArgumentNullException

The exception that is thrown if the task argument is null.

It is often useful to be able to return a Task from a Task, where the inner Task represents work done as part of the outer Task. However, doing so results in a Task<Task<T>> (C#) or Task (Of Task(Of T)) (Visual Basic), which, if not dealt with carefully, could produce unexpected behavior. Unwrap solves this problem by creating a proxy Task<TResult> that represents the entire asynchronous operation of such a Task<Task<T>> (C#) or Task (Of Task(Of T)) (Visual Basic).

.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8
Show:
© 2015 Microsoft