可能性の重複:
Timing issue - DGV refreshes before process amends the dataルーチンをスレッドに分割するにはどうすればよいですか?
私は、次のコード
private void btRunReport_Click(object sender, EventArgs e){
Process p = new Process();
p.StartInfo.FileName = @"\\fileserve\department$\ReportScheduler_v3.exe";
p.StartInfo.Arguments = "12";
p.Start();
p.WaitForExit();
InitializeGridView();
}
pはデータベーステーブルX. InitializeGridViewがテーブルを反映DGVを更新更新されますを持っていますX.
問題は、pが10分かかると、winFormがInitializeGridView()に達する前にフリーズされているということです。私が助けが必要なのは、フォームの背後で動作し、InitializeGridView()を実行する別々のスレッドでフォームを開始するにはどうすればいいですか?
スレッドをプロセスの先頭に戻すことはできません。プロセスを開始するスレッドを起動することは意味がありません。 p.WairForExitを持っていなかった場合、コードはInitializeGridView()に引き続き続きます。すぐに。 –
C#4.0の[Threading in C#](http://www.albahari.com/threading/)を簡単に読んでみてください。あなたがやろうとしていることはほとんど簡単です。 **編集**:あなたがexeを実行しようとしていたという事実を見逃していました。それは良い記事です – akiller
私はこれを行い、安全なキャンセルを容易にする唯一の方法は、別個のAppDomainを使用することだと思っています... – MoonKnight