这篇令人困惑的 MSDN 文章讨论了从 ASP.Net 应用程序调用 Web 服务如何导致死锁。我了解每个 Web 服务调用需要第二个线程来完成 IO 的部分。我了解可能并不总是有这样的线程可用,这意味着进行 Web 服务调用的线程将阻塞并且在这样的线程可用之前不会取得进展。但在我看来,确实获得 IO 线程的 Web 服务调用会提前,最终两个线程都将被释放回线程池以供先前阻塞的调用使用。那么僵局从何而来?在 IIS 终止进程时,您能描述一下死锁线程在等待什么吗?
这篇令人困惑的 MSDN 文章讨论了从 ASP.Net 应用程序调用 Web 服务如何导致死锁。我了解每个 Web 服务调用需要第二个线程来完成 IO 的部分。我了解可能并不总是有这样的线程可用,这意味着进行 Web 服务调用的线程将阻塞并且在这样的线程可用之前不会取得进展。但在我看来,确实获得 IO 线程的 Web 服务调用会提前,最终两个线程都将被释放回线程池以供先前阻塞的调用使用。那么僵局从何而来?在 IIS 终止进程时,您能描述一下死锁线程在等待什么吗?