如何从另一个线程通知等待任务完成?
问题描述:
考虑以下伪代码:如何从另一个线程通知等待任务完成?
主题#1
var task = new Task<int>();
this.AwaitingTask = task;
return await task;
主题#2
this.AwaitingTask.Complete(16);
这样,#2
线程会通过返回值(int)和通知任务已完成。所以#1
线程会知道继续执行。
是否可以实现?如何?我正在寻找能够以相似方式工作的最接近的想法。
答
您不必执行它。它已经随名 TaskCompletionSource<T>
线程1个
var completionSource = new TaskCompletionSource<int>();
this.CompletionSource= completionSource;
return await completionSource.Task;
线程2
this.CompletionSource.SetResult(16);
哇,我几乎猜到了。 – stil