Web服务:AsyncCall已完成:但WaitOne()仍在等待

本文关键字:WaitOne 在等待 服务 AsyncCall 已完成 Web | 更新日期: 2023-09-27 18:12:07

  1. 我正在通过命令行Exe调用WebService方法
  2. 这个方法调用是异步调用,我在调用之后使用WaitOne
  3. 我正在使用已完成的方法执行ManualRest.Set((

上面的设置在异步方法在10-20分钟内返回的99%的情况下都很好,

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

我在waitone((之前和之后以及Completed事件中都写日志,但经过3个小时的异步调用后,控件似乎没有返回。

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

谢谢。

Web服务:AsyncCall已完成:但WaitOne()仍在等待

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

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

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

  • Process.BeginOutputReadLine
  • Process.BeginErrorReadLine