【发布时间】:2013-10-11 18:35:55
【问题描述】:
我有一个关于 invokeAsync 的问题,以及 cal 顺序是否可以被视为可靠。
例子:
//Get Dispatcher of UI Thread
private Dispatcher _dsp = Dispatcher.CurrentDispatcher;
//Method called from non-UI Thread
private void a() {
//Do Stuff
b();
_dsp.InvokeAsync(() => {
//Do Stuff in UI Thread
});
}
private void b() {
//Do stuff
_dsp.InvokeAsync(() => {
//Do stuff in UI Thread
});
}
我是否可以理所当然地认为 b 的 InvokeAsync 中的代码将在 a' InvokeAsync 中的代码之前运行,因为它首先放入 UI 线程的调度程序中,或者这是大多数情况下 b 将首先运行的情况奇怪的情况可能是相反的,或者更糟糕的是,在两者之间跳跃?
基本上,我是否会在某些时候遇到这 2 个调用的问题,或者这是否可以可靠地遵循我提到的执行顺序?如果有机会解决问题,有什么想法可以让它变得更好吗?
【问题讨论】: