基于以下问题: General purpose FromEvent method
我怎么知道我的应用程序中哪个线程会返回该事件? 我可以以某种方式指定它将继续哪个线程? 使用此功能的线程会发生什么?
当我使用WPF(Dispatcher / Main / UI Thread)时,这些响应似乎很明显,但如果我使用线程MTA,STA,Reactive,ThreadPool(Task / BackgroundWorker),我怎么能预测会发生什么?
使用task.Wait()是否有任何实际好处(如果我不必担心锁定线程)?
答案 0 :(得分:2)
如果您await
Task
,则会捕获一个“上下文”并用于恢复async
方法。这个“上下文”是当前的SynchronizationContext
,除非它是null
,在这种情况下它是当前的TaskScheduler
(这些天通常是线程池调度程序)。
如果您正在进行async
编程,则应该使用await
而不是Wait
。 Wait
can cause deadlocks, as I explain on my blog
您可能还会发现我的async
/await
intro有帮助。