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, CancellationToken, TaskCreationOptions)

使用指定的操作和创建选项初始化一个新 Task 项。

Task(Action, CancellationToken)

Task使用指定的操作和 CancellationToken.

Task(Action, TaskCreationOptions)

使用指定的操作和创建选项初始化一个新 Task 项。

Task(Action)

使用指定的操作初始化新 Task 项。

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

使用指定的操作、状态和选项初始化一个新 Task 项。

Task(Action<Object>, Object, CancellationToken)

Task使用指定的操作、状态和 CancellationToken.

Task(Action<Object>, Object, TaskCreationOptions)

使用指定的操作、状态和选项初始化一个新 Task 项。

Task(Action<Object>, Object)

使用指定的操作和状态初始化新 Task 项。

属性

名称 说明
AsyncState

获取创建时 Task 提供的状态对象,如果未提供状态对象,则为 null。

CompletedTask

获取已成功完成的任务。

CreationOptions

TaskCreationOptions获取用于创建此任务。

CurrentId

返回当前正在执行的 TaskID。

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, CancellationToken, TaskContinuationOptions, TaskScheduler)

创建一个延续,该延续接收调用方提供的状态信息和取消令牌,并在目标 Task 完成时执行。 延续基于一组指定的条件执行,并使用指定的计划程序。

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

创建一个延续,该延续接收调用方提供的状态信息和取消令牌,并在目标 Task 完成时异步执行。

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

创建一个延续,该延续接收调用方提供的状态信息并在目标 Task 完成时执行。 延续基于一组指定的条件执行。

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

创建一个延续,该延续接收调用方提供的状态信息并在目标 Task 完成时异步执行。 延续使用指定的计划程序。

ContinueWith(Action<Task,Object>, Object)

创建一个延续,该延续接收调用方提供的状态信息并在目标 Task 完成时执行。

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

创建一个延续,该延续在目标任务根据指定的 TaskContinuationOptions任务竞争时执行。 延续接收取消令牌并使用指定的计划程序。

ContinueWith(Action<Task>, CancellationToken)

创建一个延续,该延续接收取消令牌并在目标 Task 完成时异步执行。

ContinueWith(Action<Task>, TaskContinuationOptions)

创建一个延续,该延续在目标任务根据指定的 TaskContinuationOptions任务完成时执行。

ContinueWith(Action<Task>, TaskScheduler)

创建在目标 Task 完成时异步执行的延续。 延续使用指定的计划程序。

ContinueWith(Action<Task>)

创建在目标 Task 完成时异步执行的延续。

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

在目标 Task 完成并返回值时,创建基于指定任务延续选项执行的延续。 延续接收调用方提供的状态信息和取消令牌,并使用指定的计划程序。

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

创建在目标 Task 完成并返回值时异步执行的延续。 延续接收调用方提供的状态信息和取消令牌。

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

创建一个延续,该延续在目标 Task 完成时基于指定的任务延续选项执行。 延续接收调用方提供的状态信息。

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

创建在目标 Task 完成时异步执行的延续。 延续接收调用方提供的状态信息,并使用指定的计划程序。

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

创建一个延续,该延续接收调用方提供的状态信息,并在目标 Task 完成并返回值时异步执行。

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

创建一个根据指定的延续选项执行的延续,并返回一个值。 延续通过取消令牌并使用指定的计划程序。

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

创建在目标 Task 完成并返回值时异步执行的延续。 延续接收取消标记。

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

创建一个根据指定的延续选项执行的延续,并返回一个值。

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

创建在目标 Task 完成并返回值时异步执行的延续。 延续使用指定的计划程序。

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

创建在目标 Task<TResult> 完成并返回值时异步执行的延续。

Delay(Int32, CancellationToken)

创建在指定毫秒数后完成的可取消任务。

Delay(Int32)

创建在指定毫秒数后完成的任务。

Delay(TimeSpan, CancellationToken)

创建在指定时间间隔后完成的可取消任务。

Delay(TimeSpan, TimeProvider, CancellationToken)

创建在指定时间间隔后完成的可取消任务。

Delay(TimeSpan, TimeProvider)

创建在指定时间间隔后完成的任务。

Delay(TimeSpan)

创建在指定时间间隔后完成的任务。

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项的等待程序。

GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
Run(Action, CancellationToken)

将指定的工作排入队列,以在线程池上运行,并返回表示 Task 该工作的对象。 取消令牌允许取消工作(如果尚未启动)。

Run(Action)

将指定的工作排入队列,以在线程池上运行,并返回表示 Task 该工作的对象。

Run(Func<Task>, CancellationToken)

对在线程池上运行的指定工作进行排队,并为返回的任务 function返回代理。 取消令牌允许取消工作(如果尚未启动)。

Run(Func<Task>)

对在线程池上运行的指定工作进行排队,并为返回的任务 function返回代理。

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

对在线程池上运行的指定工作进行排队,并为返回者Task(TResult)返回的function代理。

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

对在线程池上运行的指定工作进行排队,并为返回者Task(TResult)返回的function代理。 取消令牌允许取消工作(如果尚未启动)。

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

将指定的工作排入队列,以在线程池上运行,并返回表示 Task(TResult) 该工作的对象。

Run<TResult>(Func<TResult>)

将指定的工作排入队列,以在线程池上运行,并返回表示 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, CancellationToken)

等待 Task 完成执行。 如果在任务完成之前取消超时间隔或取消令牌,则等待将终止。

Wait(Int32)

等待 Task 指定的毫秒数内完成执行。

Wait(TimeSpan, CancellationToken)

等待 Task 完成执行。

Wait(TimeSpan)

Task等待指定时间间隔内完成执行。

WaitAll(IEnumerable<Task>, CancellationToken)

等待所有提供 Task 的对象完成执行,除非取消等待。

WaitAll(ReadOnlySpan<Task>)

等待所有提供 Task 的对象完成执行。

WaitAll(Task[], CancellationToken)

等待所有提供 Task 的对象完成执行,除非取消等待。

WaitAll(Task[], Int32, CancellationToken)

等待所有提供 Task 的对象在指定的毫秒内完成执行,或直到取消等待为止。

WaitAll(Task[], Int32)

等待提供 Task 的所有对象在指定的毫秒数内完成执行。

WaitAll(Task[], TimeSpan)

等待提供的所有可 Task 取消对象在指定的时间间隔内完成执行。

WaitAll(Task[])

等待所有提供 Task 的对象完成执行。

WaitAny(Task[], CancellationToken)

等待提供 Task 的任何对象完成执行,除非取消等待。

WaitAny(Task[], Int32, CancellationToken)

等待提供 Task 的任何对象在指定的毫秒内完成执行,或直到取消令牌取消为止。

WaitAny(Task[], Int32)

等待提供 Task 的任何对象在指定的毫秒数内完成执行。

WaitAny(Task[], TimeSpan)

等待提供 Task 的任何对象在指定的时间间隔内完成执行。

WaitAny(Task[])

等待提供 Task 的任何对象完成执行。

WaitAsync(CancellationToken)

获取一个 Task 将在此操作 Task 完成或指定 CancellationToken 取消请求时完成的。

WaitAsync(TimeSpan, CancellationToken)

获取一个 Task 将在此操作 Task 完成、指定的超时过期或指定 CancellationToken 取消请求时完成的。

WaitAsync(TimeSpan, TimeProvider, CancellationToken)

获取一个 Task 将在此操作 Task 完成、指定的超时过期或指定 CancellationToken 取消请求时完成的。

WaitAsync(TimeSpan, TimeProvider)

获取一个 Task 将在此操作 Task 完成或指定超时过期时完成的。

WaitAsync(TimeSpan)

获取一个 Task 将在此操作 Task 完成或指定超时过期时完成的。

WhenAll(IEnumerable<Task>)

创建一个任务,该任务将在可枚举集合中的所有 Task 对象完成时完成。

WhenAll(ReadOnlySpan<Task>)

创建一个任务,该任务将在所有提供的任务完成时完成。

WhenAll(Task[])

创建一个任务,该任务将在数组中的所有 Task 对象完成时完成。

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

创建一个任务,该任务将在可枚举集合中的所有 Task<TResult> 对象完成时完成。

WhenAll<TResult>(ReadOnlySpan<Task<TResult>>)

创建一个任务,该任务将在所有提供的任务完成时完成。

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

创建一个任务,该任务将在数组中的所有 Task<TResult> 对象完成时完成。

WhenAny(IEnumerable<Task>)

创建一个任务,该任务将在任何提供的任务完成时完成。

WhenAny(ReadOnlySpan<Task>)

创建一个任务,该任务将在任何提供的任务完成时完成。

WhenAny(Task, Task)

创建一个任务,该任务将在提供的任一任务完成时完成。

WhenAny(Task[])

创建一个任务,该任务将在任何提供的任务完成时完成。

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

创建一个任务,该任务将在任何提供的任务完成时完成。

WhenAny<TResult>(ReadOnlySpan<Task<TResult>>)

创建一个任务,该任务将在任何提供的任务完成时完成。

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

创建一个任务,该任务将在提供的任一任务完成时完成。

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

创建一个任务,该任务将在任何提供的任务完成时完成。

WhenEach(IEnumerable<Task>)

创建一个 IAsyncEnumerable<T> 将在这些任务完成时生成提供的任务。

WhenEach(ReadOnlySpan<Task>)

创建一个 IAsyncEnumerable<T> 将在这些任务完成时生成提供的任务。

WhenEach(Task[])

创建一个 IAsyncEnumerable<T> 将在这些任务完成时生成提供的任务。

WhenEach<TResult>(IEnumerable<Task<TResult>>)

创建一个 IAsyncEnumerable<T> 将在这些任务完成时生成提供的任务。

WhenEach<TResult>(ReadOnlySpan<Task<TResult>>)

创建一个 IAsyncEnumerable<T> 将在这些任务完成时生成提供的任务。

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

创建一个 IAsyncEnumerable<T> 将在这些任务完成时生成提供的任务。

Yield()

创建一个可等待的任务,该任务在等待时异步生成回当前上下文。

显式接口实现

名称 说明
IAsyncResult.AsyncWaitHandle

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

IAsyncResult.CompletedSynchronously

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

扩展方法

名称 说明
AsAsyncAction(Task)

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

DispatcherOperationWait(Task, TimeSpan)

等待基础 DispatcherOperation 完成的指定时间量。

DispatcherOperationWait(Task)

无限期等待基础 DispatcherOperation 完成。

IsDispatcherOperationTask(Task)

返回一个值,该值指示这 Task 是否与 a DispatcherOperation.

适用于

线程安全性

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

另请参阅