温馨提示×

c# continuewith能并行执行吗

c#
小樊
84
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