在C#中,TaskFactory提供了一个方便的方式来创建和执行任务。要同步任务结果,可以使用TaskFactory的ContinueWith方法来创建一个新任务,该任务在原始任务完成后执行。
以下是一个示例代码,演示如何使用TaskFactory同步任务结果:
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(); // 等待同步任务完成
Console.WriteLine("Sync task completed");
}
}
在上面的示例中,我们首先使用TaskFactory创建一个原始任务originalTask,然后使用ContinueWith方法创建一个同步任务syncTask,该任务在原始任务完成后输出结果。最后,我们使用Wait方法等待同步任务完成。
运行上面的代码,你将看到类似以下输出:
Original task completed with result: 42
Sync task completed