可以在BG线程的主线程中调用一个方法,在事件调用列表中间执行吗?

时间:2011-12-22 12:29:58

标签: c#

我在其他线程中调度的方法调度时,在目标线程中执行?

例如,当我的主线程从事件调用列表中调用函数时,是否存在某种情况,并且在事件调用列表方法之间的某处,我的方法(不是列表的一部分)从其他线程执行?

更新:所以,如果我想确保在事件调用期间没有修改某个对象,我需要使用一些Busy属性,即使所有修改都在单个线程中完成,因为可以注入来自其他线程的方法我的线程并在事件调用期间修改此对象?

1 个答案:

答案 0 :(得分:1)

我假设您的意思是要在Dispatcher上执行一系列操作,然后尝试通过BeginInvoke从另一个线程执行其他操作。在这种情况下,根据MSDN,该操作会被添加到Dispatcher队列,这暗示它实际上是在先前挂起的操作完成后执行的。

话虽如此,请注意BeginInvoke有一个指定优先级的重载,因此稍后排队但具有更高优先级的操作可能比具有较低优先级的操作先执行在它之前排队。