在TPL(Task Parallel Library)中,可以使用TaskCompletionSource<T>
类来将任务的中间结果发送到父线程。以下是一个示例:
using System;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
Task<int> parentTask = Task.Run(() =>
{
TaskCompletionSource<int> tcs = new TaskCompletionSource<int>();
Task.Run(() =>
{
// 模拟子任务
Task.Delay(1000).Wait();
tcs.SetResult(42);
});
return tcs.Task;
});
parentTask.Wait();
Console.WriteLine("子任务的中间结果:" + parentTask.Result);
}
}
在这个示例中,我们创建了一个TaskCompletionSource<int>
实例,并在子任务中设置了中间结果。父任务等待子任务完成,并输出中间结果。
注意:这个示例仅用于演示如何使用TaskCompletionSource<T>
来发送中间结果。在实际应用中,可能需要根据具体需求进行调整。
TaskCompletionSource<T>
可以方便地将任务的中间结果发送到父线程。TaskCompletionSource<T>
。TaskCompletionSource<T>
。领取专属 10元无门槛券
手把手带您无忧上云