delphi – 跨进程单例对象
发布时间:2020-12-15 09:24:04 所属栏目:大数据 来源:网络整理
导读:这是我的 another Q的变种.我有两个应用程序,X和Y.他们必须在它们之间共享一个COM对象. X将向此对象发送数据,Y将响应此应用程序发送的事件.在任何时候,X或Y都可能被终止,但单身人士需要保持活着,直到两个申请被终止. 应该可以通过这种方式创建一个单独的COM
这是我的
another Q的变种.我有两个应用程序,X和Y.他们必须在它们之间共享一个COM对象. X将向此对象发送数据,Y将响应此应用程序发送的事件.在任何时候,X或Y都可能被终止,但单身人士需要保持活着,直到两个申请被终止.
应该可以通过这种方式创建一个单独的COM对象,但是如果X首先启动并创建它,那么Y然后启动并使用它,然后X停止并且……单例会发生什么?无论如何,有没有人试过这个用Delphi? 解决方法
我想你错过了COM的核心要点. COM只是一般IPC的一个步骤,我的意思是,COM流程只存在于一个流程中(或线程甚至,但这就是公寓故事的来源).如果从两个进程访问一个COM对象,则一个进程实际上将来自和返回对象的调用编组为“平面数据”,并将消息发布到另一个进程的隐藏窗口句柄.
为了能够做你所描述的事情,你必须担心当’拥有进程’想要关闭时如何处理对象,并且必须’暂停’对象(例如通过序列化)并询问其他进程之一“恢复”对象并承担所有权并开始运行对象. 我建议你创建第三个进程,特别是只运行你想要在其他进程中使用的这个单例对象.通过这种方式,您可以让正常的引用计数和COM激活完成它的工作,并且您将按照应该使用的方式使用COM. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |