- UIスレッドであるスレッドAがあるとします。
- スレッドAは、非UIスレッドである別のスレッドBを作成します。
- スレッドBがスレッドAでイベントを発生させたい場合は、 if(Form1.InvokeRequired)Form1.Invoke(同じメソッド)と同じメソッド内でイベントを呼び出しますか?
シンプルです。しかし、私の質問は、AとBの両方が非UIスレッドの場合、同じことをしたいのですが?スレッドBからInvoke()を呼び出すフォームオブジェクトはありません。2つの非UIスレッドでControl.Invoke()をシミュレートする方法
WinFormsのアプリケーションでは、なぜ非UIスレッドのようなメカニズムがないのでしょうか?何か不足していますか?他の非uiスレッドから非uiスレッドのイベントを発生させる同様の方法はありますか?
ありがとうございます。
P.S.プロデューサー/消費者モデルの回答は、私がここで探している回答ではありません。
スレッドの問題は、もちろんUIには適用されません; p個人的には、スレッドAが作業を実行したかったように解釈しましたが、私は間違っている可能性があります。 –
君は正しいよね。 WinFormsが呼び出されたときに何か起こるような魔法を使用していないことを確認しなければなりませんでした。疑問を解決してくれてありがとう。私はあなたの答えを受け入れるでしょう。それはWindowsのメッセージループです。 – Harindaka