• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#2005のスレッド)

C#2005のスレッドでフォームを固まらずに実行する方法

このQ&Aのポイント
  • C#2005のスレッドでフォームの固まりを解消する方法を探しています。本スレッドとサブスレッドを組み合わせて実行すると、サブスレッドが終了するまでフォームが固まってしまいます。また、サブスレッドでApplication.DoEvents()を実行するとエラーが発生します。サブスレッド2でwhile(true) {Application.DoEvents();}を実行すればフォームは固まりませんが、パフォーマンスが低下してしまいます。高パフォーマンスでフォームを動かしながら、サブスレッドを実行する方法を教えてください。
  • C#2005のスレッドを使用してフォームを固まらないように実行したいです。現在、本スレッドとサブスレッドを組み合わせて実行していますが、サブスレッドが終了するまでフォームが固まってしまいます。また、サブスレッドでApplication.DoEvents()を使用するとエラーが発生します。サブスレッド2でwhile(true) {Application.DoEvents();}を実行するとフォームは固まることはありませんが、パフォーマンスが低下してしまいます。高パフォーマンスでフォームを動かしながら、サブスレッドを実行する方法を教えてください。
  • C#2005のスレッドでフォームの固まりを解消したいです。現在、本スレッドとサブスレッドを使用して実行していますが、サブスレッドが終了するまでフォームが固まってしまいます。また、サブスレッドでApplication.DoEvents()を実行するとエラーが発生します。サブスレッド2でwhile(true) {Application.DoEvents();}を実行するとフォームは固まらないですが、パフォーマンスが低下してしまいます。高パフォーマンスでフォームを動かしながら、サブスレッドを実行する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

・メインスレッドがサブスレッドの終了待ちをしてはいけない ・サブスレッドの処理結果によってフォームの書き換えをしたいのであれば,終了時のコールバックなり,スレッドの末尾なりでForm.Invokeメソッドを使う。 MSDN Blog: とあるコンサルタントのつぶやき http://blogs.msdn.com/nakama/ のマルチスレッド関係4つ (Introduction含めて5つ) は読んでおくことをお勧めします。 http://blogs.msdn.com/nakama/archive/2009/03/30/windows.aspx http://blogs.msdn.com/nakama/archive/2009/03/31/part-1-windows.aspx http://blogs.msdn.com/nakama/archive/2009/04/02/9521640.aspx http://blogs.msdn.com/nakama/archive/2009/04/07/part-3-ui.aspx http://blogs.msdn.com/nakama/archive/2009/04/09/part-4-visual-studio.aspx