2

ChildView が所有するクラスにワーカー スレッドがあります。(最終的にこれを Doc に移動する予定です。) ワーカー スレッドがタスクを完了したら、すべてのビューを更新したいと考えています。Doc に UpdateAllViews() を発行するように指示するにはどうすればよいですか? または、より良いアプローチがありますか?

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


OPによる追加:簡単な解決策を探しています。アプリは、単一ユーザー、単一 CPU のコンピューターで実行され、ネットワーク (またはインターネット) アクセスは必要ありません。デッドロックを引き起こすものは何もありません。

ビューを更新するためにワーカースレッドにメッセージを投稿 (または送信) させたいと思います。

スレッドについて読んだものはすべて、必要以上に複雑に思えます。もちろん、マルチプロセッサ、マルチユーザー、クライアント サーバー システムなどで実行されるアプリケーションには、これらすべての予防措置が必要であることも理解しています。状況。

ウィンドウハンドルを取得し、メッセージを投稿し、適切な関数とクラスでメッセージに応答してコンパイルおよび機能するという適切な組み合わせを取得することに固執しています。

4

1 に答える 1

2

UpdateAllViews はスレッド セーフではないため、メイン スレッドへの呼び出しをマーシャリングする必要があります。手動リセット イベントを通知してスレッドの完了をマークし、WM_TIMER ハンドラでイベントのステータスを確認することをお勧めします。

推奨読書:

于 2010-04-03T20:50:26.833 に答える