温馨提示×

c# continuewith能并行执行吗

c#
小樊
121
2024-11-26 16:13:23
栏目: 编程语言

在C#中,ContinueWith方法用于将一个任务链接到另一个任务,以便在第一个任务完成后执行第二个任务。然而,ContinueWith方法本身并不支持并行执行。它只能在同一个线程上下文中按顺序执行任务。

如果你想要并行执行多个任务,可以使用Task.RunTask.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方法使用了asyncawait关键字,以便正确地处理异步操作。

0