2

我有一个外部长时间运行的进程(Web API 调用),我必须跟踪它才能知道它何时完成。我想把它封装在一个任务中。TaskCompletionSource 似乎是实现这一目标的正确工具。但是与 TaskCompletionSource 关联的任务从未处于运行状态。它以 WaitingForActivation 状态开始,并在设置结果后获得 RanToCompletion 状态。为了将其包含在更通用的框架中,我需要知道底层的长进程正在运行。在这种情况下,任务应该具有运行状态。我想知道如何获得/强制/模拟这种行为。

而在这个实际问题之上,我不明白用TaskCompletionSource绕过“正在运行”状态的设计选择。我们本来可以使用 Start 方法将状态设置为“正在运行”。它看起来简单而直接。但是调用“开始”会引发异常。我不明白这个选择。

希望很清楚。提前致谢。

4

0 回答 0