在C#中,ContinueWith
方法用于将一个任务链接到另一个任务,以便在第一个任务完成后执行第二个任务。然而,ContinueWith
方法本身并不支持并行执行。它只能在同一个线程上下文中按顺序执行任务。
如果你想要并行执行多个任务,可以使用Task.Run
或Task.Factory.StartNew
方法。这些方法会创建一个新的任务,并在一个单独的线程上执行它。你可以使用Task.WhenAll
方法等待所有并行任务完成。
下面是一个使用Task.Run
并行执行多个任务的示例:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var task1 = Task.Run(() => DoWork("Task 1"));
var task2 = Task.Run(() => DoWork("Task 2"));
var task3 = Task.Run(() => DoWork("Task 3"));
await Task.WhenAll(task1, task2, task3);
}
static async Task DoWork(string taskName)
{
Console.WriteLine($"{taskName} started.");
await Task.Delay(1000); // Simulate work with a delay
Console.WriteLine($"{taskName} completed.");
}
}
在这个示例中,我们使用Task.Run
创建了三个并行任务,并使用Task.WhenAll
等待它们全部完成。请注意,DoWork
方法使用了async
和await
关键字,以便正确地处理异步操作。