0

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 で問題が発生する可能性がありますか?それとも、私が言及した実行順序に確実に従うのでしょうか? 問題が発生する可能性がある場合、それを改善する方法についてのアイデアはありますか?

4

1 に答える 1