【发布时间】:2012-05-22 18:32:48
【问题描述】:
我正在编写一个 Com 服务器,并且我编写了检测 COM 客户端意外关闭时的情况的代码,在这种情况下,我应该在 COM 服务器代码中关闭 COM 服务器。
我该怎么做?
UPD:我遇到了 COM 服务器挂起或更正确的情况,我无法从 COM 客户端连接到 COM 服务器,但包含 COM 服务器的应用程序仍处于活动状态,因此我认为 COM 服务器可以检测到所有旧 COM 客户端已断开/关闭/崩溃,应用程序将重新启动,因为没有附加新客户端。
我在 COM 客户端的单独线程中编写了以下代码
while(not we are closing)
{
unknown->QueryInterface(IComServer, &server);
if (server)
return;
}
所以 COM 客户端可以等到服务器真正准备好工作
UPD2:刚刚测试:12 分钟后我的 COM 服务器关闭
【问题讨论】:
-
您认为这样做有什么好处?
-
@David Heffernan:显然他不希望 COM 服务器进程无限期地挂起。