This documentation is archived and is not being maintained.

TaskFactory.FromAsync Method (Func<AsyncCallback, Object, IAsyncResult>, Action<IAsyncResult>, Object, TaskCreationOptions)

Creates a task that represents a pair of begin and end methods that conform to the Asynchronous Programming Model (APM).

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

public Task FromAsync(
	Func<AsyncCallback, Object, IAsyncResult> beginMethod,
	Action<IAsyncResult> endMethod,
	Object state,
	TaskCreationOptions creationOptions


Type: System.Func<AsyncCallback, Object, IAsyncResult>
The delegate that begins the asynchronous operation.
Type: System.Action<IAsyncResult>
The delegate that ends the asynchronous operation.
Type: System.Object
An object containing data to be used by the beginMethod delegate.
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
The created task that represents the asynchronous operation.


The beginMethod argument is null.


The endMethod argument is null.


The creationOptions argument specifies an invalid value.

The beginMethod delegate is started on the thread that FromAsync() is running on. This method throws any exceptions thrown by the beginMethod delegate.

The TaskCreationOptions values PreferFairness, LongRunning and AttachedToParent are all mutually exclusive. In the FromAsync methods, either LongRunning or AttachedToParent by themselves will cause an ArgumentOutOfRangeException to be thrown.

.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.