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 的详细信息,请参阅 Task 的补充 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

提供对用于创建和配置 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,同时释放其所有非托管资源。

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 所返回的任务的代理项。

Run(Func<Task>, CancellationToken)

将在线程池上运行的指定工作排队,并返回 function 所返回的任务的代理项。 可使用取消标记来取消工作(如果尚未启动)。

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

将指定的工作排成队列在线程池上运行,并返回由 function 返回的 Task(TResult) 的代理。 可使用取消标记来取消工作(如果尚未启动)。

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

将指定的工作排成队列在线程池上运行,并返回由 function 返回的 Task(TResult) 的代理。

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()

创建异步产生当前上下文的等待任务。

显式接口实现

IAsyncResult.AsyncWaitHandle

获取可用于等待任务完成的 WaitHandle

IAsyncResult.CompletedSynchronously

获取操作是否已同步完成的指示。

扩展方法

DispatcherOperationWait(Task)

无限期等待完成基础 DispatcherOperation

DispatcherOperationWait(Task, TimeSpan)

等待基础 DispatcherOperation 完成,直到达到指定的所需时间。

IsDispatcherOperationTask(Task)

返回一个值,该值指示此 Task 是否与 DispatcherOperation 相关。

AsAsyncAction(Task)

返回表示已开始任务的 Windows 运行时异步操作。

适用于

线程安全性

除 之外Dispose()的所有 成员Task都是线程安全的,并且可以同时从多个线程使用。

另请参阅