プロセスの終了を非同期で待機しています
多くのアプリケーションでは、次に進む前にプロセスが終了するのを待つことが不可欠です。ただし、Process.WaitForExit() を使用すると、グラフィカル ユーザー インターフェイス (GUI) がフリーズする可能性があります。この問題を回避するには、イベントベースまたはスレッドベースのソリューションが必要です。
イベントベースのアプローチ
.NET 4.0/C# 5 では、非同期パターンは、待機プロセスを表現するためのよりエレガントな方法を提供します。 WaitForExitAsync() メソッドを Process クラスに追加すると、アプリケーションがプロセスの終了を非同期的に待機できるようになります。
public static Task WaitForExitAsync(this Process process, CancellationToken cancellationToken = default(CancellationToken))
メソッド内:
使用法
WaitForExitAsync() メソッドを使用するには:
public async void Test() { var process = new Process("processName"); process.Start(); await process.WaitForExitAsync(); // Do some fun stuff here... }
以上がGUI をフリーズさせずに C# でプロセスの終了を非同期的に待つにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。