C# Task类的常用方法有哪些

avatar
作者
筋斗云
阅读量:0

C# 中的 Task 类是 System.Threading.Tasks 命名空间的一部分,用于表示异步操作。以下是一些常用的 Task 类方法:

  1. Task.Run(Action action): 此静态方法用于在后台运行一个新任务,并返回与该任务关联的 Task 实例。这对于在不阻塞当前线程的情况下启动后台操作非常有用。
Task.Run(() => {     // 你的代码 }); 
  1. Task.Delay(int millisecondsDelay): 此静态方法创建一个在指定延迟之后完成的 Task。这对于定时操作或模拟长时间运行的任务非常有用。
await Task.Delay(1000); // 等待1秒 
  1. Task.WhenAll(Task[] tasks): 此静态方法接收一系列任务,并返回一个新的 Task,当所有输入任务完成时,该任务才会完成。这对于同时等待多个任务完成非常有用。
var task1 = Task.Run(() => { /* 任务1 */ }); var task2 = Task.Run(() => { /* 任务2 */ });  await Task.WhenAll(task1, task2); 
  1. Task.WhenAny(Task[] tasks): 此静态方法接收一系列任务,并返回一个新的 Task<Task>,当其中任何一个输入任务完成时,该任务就会完成。这对于等待多个任务中的任意一个完成非常有用。
var task1 = Task.Run(() => { /* 任务1 */ }); var task2 = Task.Run(() => { /* 任务2 */ });  var completedTask = await Task.WhenAny(task1, task2); 
  1. Task.Wait(): 此方法使当前线程等待任务完成。这将阻塞当前线程,直到任务完成。通常,建议使用 await 关键字而不是 Wait(),因为它可以更好地处理异步上下文和错误处理。
var task = Task.Run(() => { /* 你的代码 */ }); task.Wait(); 
  1. Task.ContinueWith(Action continuationAction): 此方法用于在当前任务完成后执行另一个操作。这对于链式任务执行非常有用。
var task = Task.Run(() => { /* 任务1 */ }); task.ContinueWith((t) => { /* 任务2,在任务1完成后执行 */ }); 
  1. Task.Start(): 此方法用于手动启动先前创建的尚未启动的任务。通常,使用 Task.Run() 创建任务时,无需调用此方法,因为任务会自动启动。
var task = new Task(() => { /* 你的代码 */ }); task.Start(); 

请注意,在使用 Task 类时,应始终考虑处理异常和取消操作。这可以通过使用 try-catch 语句和 CancellationToken 来实现。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!