我正在尝试编写一个WPF应用程序,其中包含:
典型的执行顺序如下:
我实际上需要同时等待两件事。我必须继续从网络接收数据,同时在接收任务允许之前不要让发送任务完成。要做后者,我正在使用TaskCompletionSource,然后我希望将其用于SetResult(),从而完成发送任务。
但是,我发现这种方法会导致死锁。一旦发送任务等待TaskCompletionSource,接收任务就会停止......接收数据。
我如何处理这种情况并同时有两个单独的任务在等待,以便最终可以让另一个完成?