2011-12-22 36 views
1

当方法调度在其他线程中执行时,我会在指定线程中执行吗?可以在BG线程的主线程中调用方法,在事件调用列表中间执行吗?

当我的主线程从事件调用列表中调用函数时,以及事件调用列表方法之间的某处是否执行其他线程的方法(不是列表的一部分)时,会出现这种情况吗?因此,如果我想确保某些对象在事件调用期间未被修改,那么即使在单线程中完成所有修改时,我也需要使用一些Busy属性,因为可以注入来自其他线程的方法在我的线程中,并在事件调用期间修改此对象?

回答

1

我想你指的是具有一个动作队列的调度执行,然后试图通过BeginInvoke从另一个线程执行别的东西。在这种情况下,根据MSDN,该操作被添加到分派器队列中,这表明事实上在之前的待处理动作完成之后执行。

说了这话之后,请注意BeginInvoke有指定优先级的重载,所以有可能以后排队的动作比早先排队的较低优先级的动作更早执行它。

相关问题