0
  1. 我正在通过命令行 Exe 调用 WebService 方法。
  2. 此方法调用是异步调用,我在调用后使用 WaitOne。
  3. 我正在完成的方法中执行 ManualRest.Set()。

在异步方法在 10-20 分钟内返回的情况下,上述设置在 99% 的情况下都能正常工作,

当异步调用需要更多时间(例如 2-3 小时)然后未执行 WaitOne() 之后的代码时,就会出现问题。

我在 waitone() 之前和之后以及 Completed 事件中都写了日志,但是在 3 小时的异步调用之后,控件似乎没有恢复。

上面的任何帮助/指针...

谢谢。

4

1 回答 1

2

你确定 Set 被调用了吗?你在用System.Diagnostics.Process吗?请在问题中发布有关如何使用该过程的代码。

使用进程时,产生死锁的风险极高,尤其是当您使用 MSDN 上的代码示例时,这些示例向您展示了如何同步读取 StandardIn 和 StandardOut。

尝试使用异步读取方法来避免死锁。

于 2011-10-22T07:24:49.920 回答