如果我有这样的电话:
Application.Current.Dispatcher.BeginInvoke(() => someAction);
从 Dispatcher 线程调用的它是排队等待稍后执行还是立即执行,因为它不需要从一个线程切换到另一个线程?
请您参考如下方法:
正如其他人指出的那样,它确实需要排队。解决这个问题的一个有用方法是定义:
public void DispatchIfNecessary(Action action) {
if (!Dispatcher.CheckAccess())
Dispatcher.Invoke(action);
else
action.Invoke();
}
可以称为:
DispatchIfNecessary(() => {
someAction...
});