WindowsRuntimeSystemExtensions::AsTask<TResult, TProgress> Method (IAsyncOperationWithProgress<TResult, TProgress>)

.NET Framework (current version)

Returns a task that represents a Windows Runtime asynchronous operation returns a result.

Namespace:  System
Assembly:  System.Runtime.WindowsRuntime (in System.Runtime.WindowsRuntime.dll)

generic<typename TResult, typename TProgress>
static Task<TResult>^ AsTask(
	IAsyncOperationWithProgress<TResult, TProgress>^ source

Type Parameters


The type of object that returns the result of the asynchronous operation.


The type of object that provides data that indicates progress.


Type: IAsyncOperationWithProgress<TResult, TProgress>

The asynchronous operation.

Return Value

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

Usage Note

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


source is nullptr.

Use this method to get a Task<TResult> object for a Windows Runtime asynchronous operation. Task<TResult> objects simplify the coordination of asynchronous operations.

Calling this method overload is equivalent to calling the AsTask<TResult, TProgress>(IAsyncOperationWithProgress<TResult, TProgress>, IProgress<TProgress>) extension method overload and specifying nullptr for the progress parameter. This is useful when you don't want to get progress reports from an operation that reports progress.

.NET Framework

Supported in: 4.6, 4.5

.NET for Windows Phone apps

Supported in: Windows Phone Silverlight 8