溫馨提示×

c# taskfactory如何同步任務(wù)結(jié)果

c#
小樊
86
2024-07-26 17:26:09
欄目: 編程語言

在C#中,TaskFactory提供了一個方便的方式來創(chuàng)建和執(zhí)行任務(wù)。要同步任務(wù)結(jié)果,可以使用TaskFactory的ContinueWith方法來創(chuàng)建一個新任務(wù),該任務(wù)在原始任務(wù)完成后執(zhí)行。

以下是一個示例代碼,演示如何使用TaskFactory同步任務(wù)結(jié)果:

using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        TaskFactory taskFactory = new TaskFactory();

        Task<int> originalTask = taskFactory.StartNew(() =>
        {
            Thread.Sleep(2000);
            return 42;
        });

        Task syncTask = originalTask.ContinueWith((completedTask) =>
        {
            int result = completedTask.Result;
            Console.WriteLine($"Original task completed with result: {result}");
        });

        syncTask.Wait(); // 等待同步任務(wù)完成

        Console.WriteLine("Sync task completed");
    }
}

在上面的示例中,我們首先使用TaskFactory創(chuàng)建一個原始任務(wù)originalTask,然后使用ContinueWith方法創(chuàng)建一個同步任務(wù)syncTask,該任務(wù)在原始任務(wù)完成后輸出結(jié)果。最后,我們使用Wait方法等待同步任務(wù)完成。

運行上面的代碼,你將看到類似以下輸出:

Original task completed with result: 42
Sync task completed

0