外部プログラムからの応答を待っている間に、コードのセクションからアプリケーションをロックアウトする方法を理解するのに問題があります
式にオブジェクトが含まれるSynclock
コードのセクションで使用しました。Me
これでは、タイムアウトパラメータを持つダイアログボックスのSynclock
オーバーライドされたメソッドを呼び出しますが、タイマーが設定されると、基になる関数呼び出しから値を返します。このように動作します。ShowDialog
ShowDialog
SyncLock Me
Dim frmDlgWithTimeout As New frmDlgWithTimeout ' dialog box with overridden ShowDialog '
Dim res As DialogResult = frmDlgWithTimeout.ShowDialog(10 * 1000) ' 10 sec timeout '
End SyncLock
これで、外部プログラムがアプリケーションをこれに導くイベントを発生させる可能性がありますが、関数が値を返さない場合でも(したがって、コードのセクションがロックされたままになると思った場合でも)、アプリケーションがアプリケーションにSynclock
入るのを妨げることはありません。ShowDialog
プログラムのロックに使用されるオブジェクトのインスタンスは1つだけです。
あなたの助けは大歓迎です。