标签: c# .net multithreading
假设我有3个线程A,B和C
A开始B而C是一个与A或B无关的独立线程。所以现在A调用B做一些工作并等待来自B或C的信号唤醒并再次开始工作。
如何在C#中实现这种交叉线程事件处理?
答案 0 :(得分:4)
使用ManualResetEvent或AutoResetEvent(基于您想要的特定语义;没有更多信息,很难说哪个更合适)。创建适当的事件对象并与所有三个线程共享。让线程A等待事件。然后,B或C可以将事件设置为唤醒线程A。
ManualResetEvent
AutoResetEvent
A
B
C