解決できない「呼び出し」の問題があります。できる限り詳しく説明するように努めますが、私はこれに慣れていないので、ご容赦ください。さらに情報が必要な場合はお知らせください。
プロンプトが表示されたときに、メイン スレッドで作成されたフォームの一連のチェック ボックスを無効にするバックグラウンド スレッドが実行されています。これを行うにはinvoke
、デリゲートを使用して安全にクロススレッドする必要がありますが、それは間違っているに違いありません。要するに、デバッガーでこれをチェックすると、コードの ACTION 部分が 2 回実行されることがわかりますInvokeRequired
。ACTION を , で囲むことでこれを回避できます。2回else
実行されることはありませんがelse
、メソッドをもう一度実行しようとします。
delegate void ManualCurtainShuttoffHandler();
public void ManualCurtainShutoff()
{
if (InvokeRequired)
{
Invoke(new ManualCurtainShuttoffHandler(ManualCurtainShutoff));
}
// ACTION: Disable check boxes
}
メソッドを2回実行する理由を知りたいだけです。さらに情報が必要な場合はお知らせください。喜んで共有させていただきます。