This documentation is archived and is not being maintained.

TaskFactory.FromAsync<TResult> Method (IAsyncResult, Func<IAsyncResult, TResult>, TaskCreationOptions)

Creates a task that executes an end method function when a specified IAsyncResult completes.

Namespace:  System.Threading.Tasks
Assembly:  mscorlib (in mscorlib.dll)

public Task<TResult> FromAsync<TResult>(
	IAsyncResult asyncResult,
	Func<IAsyncResult, TResult> endMethod,
	TaskCreationOptions creationOptions

Type Parameters


The type of the result available through the created task.


Type: System.IAsyncResult
The IAsyncResult whose completion should trigger the processing of the endMethod.
Type: System.Func<IAsyncResult, TResult>
The function delegate that processes the completed asyncResult.
Type: System.Threading.Tasks.TaskCreationOptions
A bitwise combination of the enumeration values that control the behavior of the created task.

Return Value

Type: System.Threading.Tasks.Task<TResult>
A task that represents the asynchronous operation.


The asyncResult argument is null.


The endMethod argument is null.


The creationOptions argument specifies an invalid value.


The FromAsync() overloads that take an asyncResult parameter are not as efficient as the overloads that take a beginMethod parameter. If performance is an issue, use the overloads that provide the beginMethod/endMethod pattern.

.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.