0
  1. Command Line Exe を介して WebService メソッドを呼び出しています。
  2. このメソッド呼び出しは非同期呼び出しであり、呼び出しの後に WaitOne を使用しています。
  3. 完成したメソッドで ManualRest.Set() を実行しています。

上記のセットアップは、非同期メソッドが 10 ~ 20 分以内に返されるケースの 99% で正常に機能します。

Async Call に 2 ~ 3 時間かかり、WaitOne() の後のコードが実行されない場合に問題が発生します。

waitone() の前後と Completed イベントにもログを書き込んでいますが、3 時間の非同期呼び出しの後、コントロールが元に戻らないようです。

上記のヘルプ/ポインタ...

ありがとう。

4

1 に答える 1

2

Set が呼び出されていますか? を使用していSystem.Diagnostics.Processますか? 質問でプロセスを使用する方法のコードを投稿してください。

プロセスを使用する場合、特に StandardIn と StandardOut から同期的に読み取る方法を示す MSDN のコード例を使用する場合、デッドロックが発生するリスクが非常に高くなります。

デッドロックを回避するために、代わりに非同期読み取りメソッドを使用してみてください。

于 2011-10-22T07:24:49.920 に答える