WinFormsアプリケーションを使用していて、長時間実行される操作を実行したいと考えています。たとえば、Explorerが2つの大きなファイルを並行してコピーすることを想像してみてください。これらの長時間実行される操作ごとに、IProgressDialogのインスタンスを作成する個別のUIスレッド(メッセージ/Application.Run/Application.ExitThreadのポンピングを含む)を開始しています。
Windowsのスレッドアフィニティのために、メインフォームのハンドルをHandleRefにパッケージ化して、別のUIスレッドにある進行状況ダイアログの所有者/親として渡すことは合法ですか?セカンダリUIスレッドからメインウィンドウのハンドルにアクセスしておらず(デバッグモードではクロススレッド例外はありません)、ネイティブ関数に渡すだけです。
ありがとう。