Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个在 ATL 的帮助下编写的进程外 COM 服务器。在正常情况下,可以方便地为您处理该服务器的生命周期,但是如果客户端进程在释放其接口之前死亡,则服务器似乎会永远徘徊。
有没有办法(或我不知道的超时)允许服务器在没有客户端连接时进入其关闭过程。或者我想另一种说法是 ATL/COM 如何处理崩溃客户端的引用计数?
在您的 COM 服务器中取消引用存根会在几分钟内超时,因此它不会永远持续下去。但是,您可能遇到的另一个问题是,作为操作的一部分,您的服务器中的 COM 对象具有交叉引用,这些交叉引用未随着连接客户端的突然死亡而正确释放。在这种情况下,您的 COM 对象将保持对服务器进程的锁定,并防止它发生您希望发生的自动终止。