delphi – 跨进程单例对象

delphi – 跨进程单例对象,第1张

概述这是我的 another Q的变种.我有两个应用程序,X和Y.他们必须在它们之间共享一个COM对象. X将向此对象发送数据,Y将响应此应用程序发送的事件.在任何时候,X或Y都可能被终止,但单身人士需要保持活着,直到两个申请被终止. 应该可以通过这种方式创建一个单独的COM对象,但是如果X首先启动并创建它,那么Y然后启动并使用它,然后X停止并且……单例会发生什么?无论如何,有没有人试过这个用Delp 这是我的 another Q的变种.我有两个应用程序,X和Y.他们必须在它们之间共享一个COM对象. X将向此对象发送数据,Y将响应此应用程序发送的事件.在任何时候,X或Y都可能被终止,但单身人士需要保持活着,直到两个申请被终止.
应该可以通过这种方式创建一个单独的COM对象,但是如果X首先启动并创建它,那么Y然后启动并使用它,然后X停止并且……单例会发生什么?无论如何,有没有人试过这个用Delphi?解决方法 我想你错过了COM的核心要点. COM只是一般IPC的一个步骤,我的意思是,COM流程只存在于一个流程中(或线程甚至,但这就是公寓故事的来源).如果从两个进程访问一个COM对象,则一个进程实际上将来自和返回对象的调用编组为“平面数据”,并将消息发布到另一个进程的隐藏窗口句柄.

为了能够做你所描述的事情,你必须担心当’拥有进程’想要关闭时如何处理对象,并且必须’暂停’对象(例如通过序列化)并询问其他进程之一“恢复”对象并承担所有权并开始运行对象.

我建议你创建第三个进程,特别是只运行你想要在其他进程中使用的这个单例对象.通过这种方式,您可以让正常的引用计数和COM激活完成它的工作,并且您将按照应该使用的方式使用COM.

总结

以上是内存溢出为你收集整理的delphi – 跨进程单例对象全部内容,希望文章能够帮你解决delphi – 跨进程单例对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1253915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存