我如何从另一个线程通知等待任务完成

本文关键字:等待 任务 通知 线程 另一个 | 更新日期: 2023-09-27 18:15:59

考虑以下伪代码:

线程#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);