由于我(和 Internet 上的许多其他人)在使用 .NET Remoting 时无法配置客户端 TcpChannel 超时(请不要建议适当的修复,我已经尝试了所有方法,请没有 WCF 建议),我已经想出了一个看起来不错的解决方法来创建我们可以配置的客户端超时。如果我通过单独的计时器线程提供每个远程处理调用,并且调用超时或抛出异常,那么我可以终止线程并假设服务器已关闭。
但是,我是由另一位同事运行的,他坚持认为我这样做可能会导致 .NET 的本机机器代码出现死锁。我已经在互联网上阅读过其他此类技术的实例,例如这里的这篇文章,所以我不确定是否真的应该担心死锁。我可以看到如果线程在发送或接收某些东西的过程中中止可能是一个问题,但如果我们只是在等待响应则不会。