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 のコードは、最初に UI スレッドのディスパッチャーに配置されるため、a' InvokeAsync のコードの前に実行されることを当然のことと見なすことができますか、またはこれはほとんどの場合 b が最初に実行されるケースですが、奇妙な状況ではその逆か、さらに悪いことに、この 2 つの間でジャンプする可能性はありますか?
基本的に、ある時点でこの 2 つの Invokes で問題が発生する可能性がありますか?それとも、私が言及した実行順序に確実に従うのでしょうか? 問題が発生する可能性がある場合、それを改善する方法についてのアイデアはありますか?