【发布时间】:2014-02-14 11:24:25
【问题描述】:
当我收到与线程上下文相关的异常时,我使用委托函数并调用此委托函数。有必要使用来自其他线程的控制。但是我刚刚了解到我可以使用SynchronizationContext.Post() 函数,并且可以在此方法中调用我的委托。
我不确定哪个更好?这些方法有什么区别?
【问题讨论】:
-
你是使用委托的Invoke方法还是使用Control.Invoke方法调用委托?
-
您应该将
SynchronizationContext.Post与Control.BeginInvoke和SynchronizationContext.Send与Control.Invoke进行比较。WinFormsSynchronizationContext在内部调用Control.BeginInvoke。 -
是的,我可以比较这些,但我想知道理论上的区别
标签: c# asynchronous thread-safety