我正在编写一个 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 服务器关闭