0

私はwkhtmltopdfを使用して、asp.netmvcサイトからいくつかのpdfを生成しています。ここで別のSOの質問にあるコードを使用しています。このコードには、プロセスが完了するまでハードコードされた60秒の待機があるという問題があります。トリガーまたはシグナルを監視して終了し、出力を読み取ることができれば、はるかに改善されると思います。では、wkhtmltopdfプロセスからの応答をリッスンする方法を知っている人はいますか?

 // read the output here...
string output = p.StandardOutput.ReadToEnd(); 

// ...then wait n milliseconds for exit (as after exit, it can't read the output)
p.WaitForExit(60000); 

// read the exit code, close process
int returnCode = p.ExitCode;
p.Close(); 
4

1 に答える 1

2

それがあなたが思っていることをしているのかわかりません。完了するとすぐに終了します。60秒は、完了するまでの最大待機時間です。

MSDNに記載されているように

WaitForExit(Int32)オーバーロードは、関連するプロセスが終了するまで現在のスレッドを待機させるために使用されます。この過負荷は、プロセスが終了するまで有限時間待機するようにプロセスコンポーネントに指示します。終了の要求が拒否されたために関連するプロセスが間隔の終わりまでに終了しない場合、falseが呼び出し元のプロシージャーに返されます。ミリ秒に負の数(無限)を指定すると、Process.WaitForExit(Int32)はWaitForExitオーバーロードと同じように動作します。メソッドに0(ゼロ)を渡すと、プロセスがすでに終了している場合にのみtrueが返されます。それ以外の場合は、すぐにfalseを返します。

(強調鉱山)

于 2012-07-24T15:12:28.770 に答える