私はループ(ファイルアクセス、コピーファイル、....)で何らかの操作を行うWinformアプリケーションを持っています。これらの操作中にアプリケーションが完全にフリーズすると、ジョブは実行されますが、メインウィンドウを移動するか、RichTextBox
情報を更新します(エラーと進行中のジョブを表示します)。Winformアプリケーションフリーズ
あなたはこれを行う方法を知っていますか?
おかげで、
私はループ(ファイルアクセス、コピーファイル、....)で何らかの操作を行うWinformアプリケーションを持っています。これらの操作中にアプリケーションが完全にフリーズすると、ジョブは実行されますが、メインウィンドウを移動するか、RichTextBox
情報を更新します(エラーと進行中のジョブを表示します)。Winformアプリケーションフリーズ
あなたはこれを行う方法を知っていますか?
おかげで、
BackgroundWorkerの使用を検討してください。
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx
これは、両方のバックグラウンドでコードを実行し、バックメイン UIスレッドへの進捗状況を報告することができます。
あなたは別のスレッドを作成し、他のタスクを実行したり、バックグラウンドワーカースレッドを使用することができます。
バックグラウンドワーカーを使用し、ワーカーにループをさせることをお勧めします。私はあなたのアプリケーションが行ごとにファイルを読み込んで、リッチテキストボックスコントロールに追加したと思いますか?
この記事ではBackGround Workerをご使用の際にご案内します。またはthis
おそらく重複:http://stackoverflow.com/questions/1737088/winforms-avoid-freeze-application?rq=1 バックグラウンドワーカー、タスク、または単に伝統的なスレッドを使用する – Bouam