0

動的呼び出しとスレッドについて質問があります。ある時点でダイアログを表示するメイン スレッドがあるとします。

public void showDialog()
{
    lock(mutexObject)
    {
        flagDialogShowing = true;
        showMssgDialog(properties...);
        flagDialogShowing = false;
    }
}

そのダイアログを表示すると、mainThread が mutexObject を取得し、ユーザーが同意ボタンをクリックするまで停止します。だから私のメインスレッドは眠っています。ユーザーがボタンを押さずに待機すると、別のスレッドでイベントが発生します。そのイベントは、dynamicInvoke を使用して前の関数を呼び出します。その場合、mainThread getUp であり、flagDialog を使用しない場合、2 番目のダイアログが表示されます。これで正しい?スレッドがスリープしていない場合、dynamicInvoke は何をしますか? mainThread が停止するまで待機しますか? 2 つのダイアログを閉じると、実行を続行する場所がわかります。さまざまなコールスタックをスタックし、古いコンテキストを回復する方法を知っていますか?

どうもありがとうございました。

4

1 に答える 1