Task 類別

定義

表示非同步作業。

public ref class Task : IAsyncResult
public ref class Task : IAsyncResult, IDisposable
public class Task : IAsyncResult
public class Task : IAsyncResult, IDisposable
type Task = class
    interface IAsyncResult
type Task = class
    interface IAsyncResult
    interface IDisposable
Public Class Task
Implements IAsyncResult
Public Class Task
Implements IAsyncResult, IDisposable
繼承
Task
衍生
實作

備註

如需此 API 的詳細資訊,請參閱 工作補充 API 備註

建構函式

Task(Action)

使用指定的動作,初始化新的 Task

Task(Action, CancellationToken)

使用指定的動作和 Task,初始化新的 CancellationToken

Task(Action, CancellationToken, TaskCreationOptions)

使用指定的動作和建立選項,初始化新的 Task

Task(Action, TaskCreationOptions)

使用指定的動作和建立選項,初始化新的 Task

Task(Action<Object>, Object)

使用指定的動作和狀態,初始化新的 Task

Task(Action<Object>, Object, CancellationToken)

使用指定的動作、狀態和 CancellationToken,初始化新的 Task

Task(Action<Object>, Object, CancellationToken, TaskCreationOptions)

使用指定的動作、狀態和選項,初始化新的 Task

Task(Action<Object>, Object, TaskCreationOptions)

使用指定的動作、狀態和選項,初始化新的 Task

屬性

AsyncState

取得建立 Task 時提供的狀態物件,如果未提供則為 null。

CompletedTask

取得已成功完成的工作。

CreationOptions

取得用來建立這個工作的 TaskCreationOptions

CurrentId

傳回目前執行之 Task 的唯一 ID。

Exception

取得導致 AggregateException 不當結束的 Task。 如果 Task 順利完成,或未擲回任何例外狀況,則這會傳回 null

Factory

提供 Factory 方法的存取,這些 Factory 方法用於建立及設定 TaskTask<TResult> 執行個體。

Id

取得這個 Task 執行個體的 ID。

IsCanceled

取得這個 Task 執行個體是否因取消才完成執行。

IsCompleted

取得值,這個值表示工作是否已經完成。

IsCompletedSuccessfully

取得工作是否執行到完成。

IsFaulted

取得 Task 是否因未處理的例外狀況才完成。

Status

取得這個工作的 TaskStatus

方法

ConfigureAwait(Boolean)

設定用來等候這個 Task 的 awaiter。

ConfigureAwait(ConfigureAwaitOptions)

設定用來等候這個 Task 的 awaiter。

ContinueWith(Action<Task,Object>, Object)

建立當目標 Task 完成時,會接收呼叫端提供的狀態資訊並執行的接續。

ContinueWith(Action<Task,Object>, Object, CancellationToken)

建立當目標 Task 完成時,會接收呼叫端提供的狀態資訊和取消語彙基元,並非同步執行的接續。

ContinueWith(Action<Task,Object>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

建立當目標 Task 完成時,會接收呼叫端提供的狀態資訊和取消語彙基元,並執行的接續。 接續會根據一組指定的條件執行,並使用指定的排程器。

ContinueWith(Action<Task,Object>, Object, TaskContinuationOptions)

建立當目標 Task 完成時,會接收呼叫端提供的狀態資訊並執行的接續。 接續會根據一組指定的條件執行。

ContinueWith(Action<Task,Object>, Object, TaskScheduler)

建立當目標 Task 完成時,會接收呼叫端提供的狀態資訊並非同步執行的接續。 接續會使用指定的排程器。

ContinueWith(Action<Task>)

建立當目標 Task 完成時非同步執行的接續。

ContinueWith(Action<Task>, CancellationToken)

建立當目標 Task 完成時,會接收取消語彙基元並非同步執行的接續。

ContinueWith(Action<Task>, CancellationToken, TaskContinuationOptions, TaskScheduler)

建立當目標工作完成時,會根據指定之 TaskContinuationOptions 執行的接續。 接續會接收取消語彙基元,並使用指定的排程器。

ContinueWith(Action<Task>, TaskContinuationOptions)

建立當目標工作完成時,會根據指定之 TaskContinuationOptions 執行的接續。

ContinueWith(Action<Task>, TaskScheduler)

建立當目標 Task 完成時非同步執行的接續。 接續會使用指定的排程器。

ContinueWith<TResult>(Func<Task,Object,TResult>, Object)

建立當目標 Task 完成並傳回值時,會接收呼叫端提供的狀態資訊並非同步執行的接續。

ContinueWith<TResult>(Func<Task,Object,TResult>, Object, CancellationToken)

建立當目標 Task 完成並傳回值時非同步執行的接續。 接續會接收呼叫端提供的狀態資訊和取消語彙基元。

ContinueWith<TResult>(Func<Task,Object,TResult>, Object, CancellationToken, TaskContinuationOptions, TaskScheduler)

建立當目標 Task 完成並傳回值時,會根據指定的工作接續選項來執行的接續。 接續會接收呼叫端提供的狀態資訊和取消語彙基元,並使用指定的排程器。

ContinueWith<TResult>(Func<Task,Object,TResult>, Object, TaskContinuationOptions)

建立當目標 Task 完成時,會根據指定的工作接續選項來執行的接續。 接續會接收呼叫端提供的狀態資訊。

ContinueWith<TResult>(Func<Task,Object,TResult>, Object, TaskScheduler)

建立當目標 Task 完成時非同步執行的接續。 接續會接收呼叫端提供的狀態資訊,並使用指定的排程器。

ContinueWith<TResult>(Func<Task,TResult>)

建立當目標 Task<TResult> 完成並傳回值時非同步執行的接續。

ContinueWith<TResult>(Func<Task,TResult>, CancellationToken)

建立當目標 Task 完成並傳回值時非同步執行的接續。 接續會接收取消語彙基元。

ContinueWith<TResult>(Func<Task,TResult>, CancellationToken, TaskContinuationOptions, TaskScheduler)

建立會根據指定之接續選項執行並傳回值的接續。 接續會接收取消語彙基元,並使用指定的排程器。

ContinueWith<TResult>(Func<Task,TResult>, TaskContinuationOptions)

建立會根據指定之接續選項執行並傳回值的接續。

ContinueWith<TResult>(Func<Task,TResult>, TaskScheduler)

建立當目標 Task 完成並傳回值時非同步執行的接續。 接續會使用指定的排程器。

Delay(Int32)

建立在指定的毫秒數之後完成的工作。

Delay(Int32, CancellationToken)

建立在指定的毫秒數之後完成的可取消工作。

Delay(TimeSpan)

建立在指定時間間隔之後完成的工作。

Delay(TimeSpan, CancellationToken)

建立在指定時間間隔之後完成的可取消工作。

Delay(TimeSpan, TimeProvider)

建立在指定時間間隔之後完成的工作。

Delay(TimeSpan, TimeProvider, CancellationToken)

建立在指定時間間隔之後完成的可取消工作。

Dispose()

釋放 Task 類別目前的執行個體所使用的全部資源。

Dispose(Boolean)

處置 Task,並釋放它的所有 Unmanaged 資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FromCanceled(CancellationToken)

建立以指定的取消語彙基元取消而完成的 Task

FromCanceled<TResult>(CancellationToken)

建立以指定的取消語彙基元取消而完成的 Task<TResult>

FromException(Exception)

建立以指定例外狀況完成的 Task

FromException<TResult>(Exception)

建立以指定例外狀況完成的 Task<TResult>

FromResult<TResult>(TResult)

建立已成功完成具有指定之結果的 Task<TResult>

GetAwaiter()

取得用來等候這個 Task 的 awaiter。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
Run(Action)

將指定在執行緒集區執行工作排入佇列,並傳回代表該工作的 Task 物件。

Run(Action, CancellationToken)

將指定在執行緒集區執行工作排入佇列,並傳回代表該工作的 Task 物件。 取消權杖可用來在工作尚未開始之前取消工作。

Run(Func<Task>)

將指定在執行緒集區執行的工作排入佇列,並傳回 function 所傳回之工作的 Proxy。

Run(Func<Task>, CancellationToken)

將指定在執行緒集區執行的工作排入佇列,並傳回 function 所傳回之工作的 Proxy。 取消權杖可用來在工作尚未開始之前取消工作。

Run<TResult>(Func<Task<TResult>>)

將指定在執行緒集區執行的工作排入佇列,並傳回 function 所傳回之 Task(TResult) 的 Proxy。 取消權杖可用來在工作尚未開始之前取消工作。

Run<TResult>(Func<Task<TResult>>, CancellationToken)

將指定在執行緒集區執行的工作排入佇列,並傳回 function 所傳回之 Task(TResult) 的 Proxy。

Run<TResult>(Func<TResult>)

將指定在執行緒集區執行工作排入佇列,並傳回代表該工作的 Task<TResult> 物件。 取消權杖可用來在工作尚未開始之前取消工作。

Run<TResult>(Func<TResult>, CancellationToken)

將指定在執行緒集區執行工作排入佇列,並傳回代表該工作的 Task(TResult) 物件。

RunSynchronously()

在目前的 Task 上同步執行 TaskScheduler

RunSynchronously(TaskScheduler)

在提供的 Task 上同步執行 TaskScheduler

Start()

啟動 Task,並排定它在目前的 TaskScheduler 執行。

Start(TaskScheduler)

啟動 Task,並排定它在指定的 TaskScheduler 執行。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
Wait()

等候 Task 完成執行。

Wait(CancellationToken)

等候 Task 完成執行。 如果在工作完成之前取消語彙基元已取消,則等候會終止。

Wait(Int32)

等待 Task 在指定的毫秒數內完成執行。

Wait(Int32, CancellationToken)

等候 Task 完成執行。 如果在工作完成之前經過逾時間隔或取消語彙基元已取消,則等候會終止。

Wait(TimeSpan)

等待 Task 在指定的時間間隔內完成執行。

Wait(TimeSpan, CancellationToken)

等候 Task 完成執行。

WaitAll(Task[])

等候所有提供的 Task 物件完成執行。

WaitAll(Task[], CancellationToken)

等候所有提供的 Task 物件完成執行。

WaitAll(Task[], Int32)

等待所有提供的 Task 物件在指定的毫秒數內完成執行。

WaitAll(Task[], Int32, CancellationToken)

等待所有提供的 Task 物件在指定的毫秒數內完成執行。

WaitAll(Task[], TimeSpan)

等候所有提供的可取消 Task 物件在指定的時間間隔內完成執行。

WaitAny(Task[])

等候任一提供的 Task 物件完成執行。

WaitAny(Task[], CancellationToken)

等候所有提供的 Task 物件完成執行。

WaitAny(Task[], Int32)

等候所有提供的 Task 物件在指定的毫秒數內完成執行。

WaitAny(Task[], Int32, CancellationToken)

等待所有提供的 Task 物件在指定的毫秒數內完成執行。

WaitAny(Task[], TimeSpan)

等候其中任何一個提供的 Task 物件在指定的時間間隔內完成執行。

WaitAsync(CancellationToken)

取得 , Task 當這個 Task 完成時,或指定的 CancellationToken 已要求取消時,將會完成。

WaitAsync(TimeSpan)

取得 , Task 當這個 Task 完成或指定的逾時到期時,將會完成。

WaitAsync(TimeSpan, CancellationToken)

Task取得當完成Task時、指定逾時到期時,或要求指定CancellationToken取消時完成的 。

WaitAsync(TimeSpan, TimeProvider)

取得 , Task 當這個 Task 完成或指定的逾時到期時,將會完成。

WaitAsync(TimeSpan, TimeProvider, CancellationToken)

Task取得當完成Task時、指定逾時到期時,或要求指定CancellationToken取消時完成的 。

WhenAll(IEnumerable<Task>)

建立一個工作,當可列舉集合中的所有 Task 物件完成時,會完成此工作。

WhenAll(Task[])

建立一個工作,當陣列中的所有 Task 物件完成時,會完成此工作。

WhenAll<TResult>(IEnumerable<Task<TResult>>)

建立一個工作,當可列舉集合中的所有 Task<TResult> 物件完成時,會完成此工作。

WhenAll<TResult>(Task<TResult>[])

建立一個工作,當陣列中的所有 Task<TResult> 物件完成時,會完成此工作。

WhenAny(IEnumerable<Task>)

建立當任一提供的工作完成時才會完成的工作。

WhenAny(Task, Task)

建立將在完成任一個所提供工作時完成的工作。

WhenAny(Task[])

建立當任一提供的工作完成時才會完成的工作。

WhenAny<TResult>(IEnumerable<Task<TResult>>)

建立當任一提供的工作完成時才會完成的工作。

WhenAny<TResult>(Task<TResult>, Task<TResult>)

建立將在完成任一個所提供工作時完成的工作。

WhenAny<TResult>(Task<TResult>[])

建立當任一提供的工作完成時才會完成的工作。

Yield()

建立會在等候時以非同步方式遞交 (Yield) 給目前內容的 awaitable 工具。

明確介面實作

IAsyncResult.AsyncWaitHandle

取得 WaitHandle,這個項目可用來等候工作完成。

IAsyncResult.CompletedSynchronously

取得作業是否已同步完成的指示。

擴充方法

DispatcherOperationWait(Task)

無限期等候基礎 DispatcherOperation 完成。

DispatcherOperationWait(Task, TimeSpan)

在指定的時間長度中等候,等候基礎 DispatcherOperation 完成。

IsDispatcherOperationTask(Task)

傳回值,表示這個 Task 是否與 DispatcherOperation 關聯。

AsAsyncAction(Task)

傳回代表已開始的動作的 Windows 執行階段非同步動作。

適用於

執行緒安全性

除了 以外的Dispose()所有成員Task都是安全線程,而且可以從多個線程同時使用。

另請參閱