在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