【问题标题】:ATL COM server lifetimeATL COM 服务器生命周期
【发布时间】:2013-02-05 00:54:02
【问题描述】:

我有一个在 ATL 的帮助下编写的进程外 COM 服务器。在正常情况下,可以方便地为您处理该服务器的生命周期,但是如果客户端进程在释放其接口之前死亡,则服务器似乎会永远徘徊。

有没有办法(或我不知道的超时)允许服务器在没有客户端连接时进入其关闭过程。或者我想另一种说法是 ATL/COM 如何处理崩溃客户端的引用计数?

【问题讨论】:

    标签: com atl


    【解决方案1】:

    在您的 COM 服务器中取消引用存根会在几分钟后超时,因此它不会永远持续下去。但是,您可能遇到的另一个问题是,作为操作的一部分,您的服务器中的 COM 对象具有交叉引用,这些交叉引用未随着连接客户端的突然死亡而正确释放。在这种情况下,您的 COM 对象将保持对服务器进程的锁定,并防止它发生您期望发生的自动终止。

    【讨论】:

    • 正确。看起来大约需要 6 分钟……感觉就像永远一样 :)
    猜你喜欢
    • 2011-05-09
    • 2010-12-17
    • 2011-11-10
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 2011-03-14
    • 2011-11-28
    • 2018-02-23
    相关资源
    最近更新 更多