私は、自分自身とは異種であり、独立して実行される多くのフォームを開く必要があるアプリケーションを持っています。その後、私のアプリケーションは長時間実行される操作をブロックします (これらの操作を非同期にすることはできません)。したがって、これらのフォームを独自のメッセージ ポンプを使用して別のスレッドで実行したいと考えています。
それを行う方法はありますか?
私は、自分自身とは異種であり、独立して実行される多くのフォームを開く必要があるアプリケーションを持っています。その後、私のアプリケーションは長時間実行される操作をブロックします (これらの操作を非同期にすることはできません)。したがって、これらのフォームを独自のメッセージ ポンプを使用して別のスレッドで実行したいと考えています。
それを行う方法はありますか?
Application.Run();
これにより、独自のメッセージ ポンプを使用して、独自のスレッドでフォームが起動されます。
Application.Run が呼び出されるたびに新しい UI スレッドが作成されるため、これで目的が達成されるはずです。
編集 #2: http://msdn.microsoft.com/en-us/library/system.windows.forms.application.run(VS.71).aspx
ドキュメントは少しあいまいです。私は常に、ThreadPool を使用し、定期的にコントロールをフォームにマーシャリングしてステータスをレンダリングすることで、長時間実行される操作を実現してきましたが、Application.Run() を使用して複数のフォームを生成できるようです。