0

WinFormsアプリケーションを使用していて、長時間実行される操作を実行したいと考えています。たとえば、Explorerが2つの大きなファイルを並行してコピーすることを想像してみてください。これらの長時間実行される操作ごとに、IProgressDialogのインスタンスを作成する個別のUIスレッド(メッセージ/Application.Run/Application.ExitThreadのポンピングを含む)を開始しています。

Windowsのスレッドアフィニティのために、メインフォームのハンドルをHandleRefにパッケージ化して、別のUIスレッドにある進行状況ダイアログの所有者/親として渡すことは合法ですか?セカンダリUIスレッドからメインウィンドウのハンドルにアクセスしておらず(デバッグモードではクロススレッド例外はありません)、ネイティブ関数に渡すだけです。

ありがとう。

4

1 に答える 1

0

はい、大丈夫です。Windowsでは、異なるスレッドのウィンドウに親子関係を持たせることができます。

于 2009-06-28T13:03:13.317 に答える