動的呼び出しとスレッドについて質問があります。ある時点でダイアログを表示するメイン スレッドがあるとします。
public void showDialog()
{
lock(mutexObject)
{
flagDialogShowing = true;
showMssgDialog(properties...);
flagDialogShowing = false;
}
}
そのダイアログを表示すると、mainThread が mutexObject を取得し、ユーザーが同意ボタンをクリックするまで停止します。だから私のメインスレッドは眠っています。ユーザーがボタンを押さずに待機すると、別のスレッドでイベントが発生します。そのイベントは、dynamicInvoke を使用して前の関数を呼び出します。その場合、mainThread getUp であり、flagDialog を使用しない場合、2 番目のダイアログが表示されます。これで正しい?スレッドがスリープしていない場合、dynamicInvoke は何をしますか? mainThread が停止するまで待機しますか? 2 つのダイアログを閉じると、実行を続行する場所がわかります。さまざまなコールスタックをスタックし、古いコンテキストを回復する方法を知っていますか?
どうもありがとうございました。