C# 中的 Task
类是 System.Threading.Tasks
命名空间的一部分,用于表示异步操作。以下是一些常用的 Task
类方法:
Task
实例。这对于在不阻塞当前线程的情况下启动后台操作非常有用。Task.Run(() =>
{
// 你的代码
});
Task
。这对于定时操作或模拟长时间运行的任务非常有用。await Task.Delay(1000); // 等待1秒
Task
,当所有输入任务完成时,该任务才会完成。这对于同时等待多个任务完成非常有用。var task1 = Task.Run(() => { /* 任务1 */ });
var task2 = Task.Run(() => { /* 任务2 */ });
await Task.WhenAll(task1, task2);
Task<Task>
,当其中任何一个输入任务完成时,该任务就会完成。这对于等待多个任务中的任意一个完成非常有用。var task1 = Task.Run(() => { /* 任务1 */ });
var task2 = Task.Run(() => { /* 任务2 */ });
var completedTask = await Task.WhenAny(task1, task2);
await
关键字而不是 Wait()
,因为它可以更好地处理异步上下文和错误处理。var task = Task.Run(() => { /* 你的代码 */ });
task.Wait();
var task = Task.Run(() => { /* 任务1 */ });
task.ContinueWith((t) => { /* 任务2,在任务1完成后执行 */ });
Task.Run()
创建任务时,无需调用此方法,因为任务会自动启动。var task = new Task(() => { /* 你的代码 */ });
task.Start();
请注意,在使用 Task
类时,应始终考虑处理异常和取消操作。这可以通过使用 try-catch
语句和 CancellationToken
来实现。