我有 2 个对象。 Foo 和 Bar 在两个不同的线程中。现在我想在 Foo 中引发一个事件,但在 Bar 的线程中。
我该如何使用 SynchronizationContext.Current?
最佳答案
“Foo”和“Bar”都没有真正的线程……您需要一个外部消息泵机制来在线程之间推送消息,例如 winforms (Control.Invoke) 和 WPF (Dispatcher) 中提供的机制。或者,如果您不介意其中一个线程专门用于(被动)等待消息,那么(同步的)生产者/消费者队列之类的东西就足够了。
除非您编写了自己的同步上下文,否则我们不可能说出SynchronizationContext.Current
会是什么;在许多情况下,它是 null
。
您能否为问题添加更多上下文?
关于C#通过事件同步两个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/711982/