我有一个关于 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 中的代码之前运行可能是相反的,或者更糟糕的是,在两者之间跳跃?
基本上,我是否会在某些时候遇到这 2 次调用的问题,或者这是否可以可靠地遵循我提到的执行顺序?如果有机会解决问题,关于如何使它变得更好的任何想法?