こんにちは、仲間のプログラマー、
私はこれについて頭を悩ませています。次の方法を使用してプロセスを開始しています。最初は wkhtmltoimage.exe で、次に wkhtmltopdf.exe です。Process_Exited
常に呼び出されるとは限らないことを除いて、すべてが期待どおりに機能します。適切なボタンを数回押したプログラムの 1 回の実行中に、考えられるすべてのバリエーションがありました。
- wkhtmltoimage のみがイベントを発生させました
- wkhtmltopdf のみがイベントを発生させました
- 両方やった
- イベントはまったく発生しませんでした。
タスク マネージャーとデバッガーを介して、プロセスが常に正常に終了したことを確認できました。
再現可能なものはなく、実行ごとに異なります。これはプロセスでの私の最初の試みです。おそらく私は何か間違ったことをしています。幸いなことに、この問題を解決することは、私のアプリケーションにとって重要ではありません。
protected Process StartProcess(string FileName, string Arguments)
{
ProcessStartInfo MyStartInfo = new ProcessStartInfo(FileName, Arguments)
{
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardInput = true
};
Process Proc = new Process { StartInfo = MyStartInfo };
Proc.EnableRaisingEvents = true;
Proc.Exited += (sender, name) => Process_Exited(Proc, Proc.ProcessName);
Proc.Start();
return Proc;
}
protected void Process_Exited(object sender, string ProcessName)
{
Debug.WriteLine("Process_Exited: " + ProcessName);
}