Web服务:AsyncCall完成了:但是WaitOne()还在等待

时间:2011-10-22 07:16:41

标签: c# multithreading asynccallback manualresetevent waitone

  1. 我通过命令行Exe。
  2. 调用WebService方法
  3. 此方法调用是异步调用,我在调用后使用WaitOne。
  4. 我在完成的方法中做了ManualRest.Set()。
  5. 上述设置在异步方法返回的情况下可以正常运行,并且可以使用10-20分钟,

    出现问题 当异步调用花费更多时间(如2-3小时)时,WaitOne()之后的代码没有被执行。

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

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

    感谢。

1 个答案:

答案 0 :(得分:2)

你确定正在调用Set吗?你在使用System.Diagnostics.Process吗?请在您的问题中发布代码,了解您如何使用该流程。

使用进程时,创建死锁的风险极高,尤其是如果您使用MSDN上的代码示例向您展示如何同步读取StandardIn和StandardOut。

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