C# C语言中的VB6 LinkExecute等效程序#

C# C语言中的VB6 LinkExecute等效程序#,c#,vb6,C#,Vb6,在VB6中,有一个名为LinkExecute的表单事件,我可以使用它将两个项目链接在一起。例如,我使用按钮创建项目A,并将其与项目B链接,当我单击项目A上的按钮时,项目B中的文本框已更改 为了简化这个想法,它将两个项目链接起来,使其中一个项目侦听其他事件,当主项目上发生特定事件时,侦听器在侦听器项目上本地触发一个事件 这两个项目都是WinForms并在同一台计算机上运行 项目A Private子命令1_Click() 出错时继续下一步 Text1.LinkTopic=“项目1 |系统” Text

在VB6中,有一个名为
LinkExecute
的表单事件,我可以使用它将两个项目链接在一起。例如,我使用按钮创建项目A,并将其与项目B链接,当我单击项目A上的按钮时,项目B中的文本框已更改

为了简化这个想法,它将两个项目链接起来,使其中一个项目侦听其他事件,当主项目上发生特定事件时,侦听器在侦听器项目上本地触发一个事件

这两个项目都是WinForms并在同一台计算机上运行

项目A

Private子命令1_Click()
出错时继续下一步
Text1.LinkTopic=“项目1 |系统”
Text1.LinkItem=“TEXTSource”
Text1.LinkMode=vbLinkManual
Text1.LinkRequest“你好,世界”
Text1.LinkExecute“你好,世界”
多芬特
端接头
公共子表单_加载()
端接头
项目B

Private子命令1_Click()
Label1.Caption=Val(Label1.Caption)+1
端接头
专用子表_LinkClose()
列表1.AddItem“Form_LinkClose”
命令1_单击
端接头
私有子表单\u链接器错误(链接器为整数)
列表1.AddItem“表单链接错误”
命令1_单击
端接头
私有子表单_LinkExecute(CmdStr作为字符串,取消作为整数)
List1.AddItem“Command”&CmdStr&“已收到”
取消=错误
命令1_单击
端接头
私有子表单链接打开(取消为整数)
列表1.AddItem“Form_LinkOpen”
取消=错误
命令1_单击
端接头
专用子表单_加载()
清单1.清除
命令1_单击
端接头
私有子图片源_LinkClose()
列表1.AddItem“PictureSource链接关闭”
命令1_单击
端接头
专用子图片资源链接器错误(链接器为整数)
列表1.AddItem“PictureSource链接器:错误=”&LinkErr
命令1_单击
端接头
私有子图片源_LinkNotify()
列表1.AddItem“PictureSource链接通知”
命令1_单击
端接头
私有子图片资源链接打开(取消为整数)
列表1.AddItem“PictureSource链接打开”
命令1_单击
端接头

那么,在C#中,什么是与
LinkExecute
,或者如何在C#中实现相同的功能?

DDE是一种较旧的进程间通信协议,它严重依赖于在应用程序之间来回传递windows消息。其他更现代、更健壮的进程间通信技术也可用,比如为了让两个项目交换事件,他们必须就这些事件的通信方式达成一致。有许多不同的方法可以做到这一点,具体使用哪种方法可能取决于体系结构和上下文

您还可以查找一些常用的技术,如使用TCP/UDP套接字连接、使用Web服务、WCF或Restful Web服务、从数据库中的公共条目读取。(不推荐),以及。当您自己实现这两个应用程序时,您可以选择使用您喜欢的任何IPC方法。网络套接字和更高级的基于套接字的协议,如HTTP、XML-RPC和SOAP,因为它们允许您在不同的物理机器上运行应用程序

我更喜欢使用MSMQ,因为它将保留在不同机器中拥有进程的能力

  • MSMQ允许您不丢失消息(在接收器关闭的情况下)
  • MSMQ允许您在同一台计算机或不同的计算机中拥有进程 机器
  • Windows服务使您能够启动/停止 容易处理
  • Windows服务可以监视我的SNMP,通常它们可以轻松地与Windows管理工具集成
  • 编辑


    答案的参考来源于,DDE是一种较旧的进程间通信协议,在很大程度上依赖于在应用程序之间来回传递windows消息。其他更现代、更健壮的进程间通信技术也可用,比如为了让两个项目交换事件,他们必须就这些事件的通信方式达成一致。有许多不同的方法可以做到这一点,具体使用哪种方法可能取决于体系结构和上下文

    您还可以查找一些常用的技术,如使用TCP/UDP套接字连接、使用Web服务、WCF或Restful Web服务、从数据库中的公共条目读取。(不推荐),以及。当您自己实现这两个应用程序时,您可以选择使用您喜欢的任何IPC方法。网络套接字和更高级的基于套接字的协议,如HTTP、XML-RPC和SOAP,因为它们允许您在不同的物理机器上运行应用程序

    我更喜欢使用MSMQ,因为它将保留在不同机器中拥有进程的能力

  • MSMQ允许您不丢失消息(在接收器关闭的情况下)
  • MSMQ允许您在同一台计算机或不同的计算机中拥有进程 机器
  • Windows服务使您能够启动/停止 容易处理
  • Windows服务可以监视我的SNMP,通常它们可以轻松地与Windows管理工具集成
  • 编辑


    答案的参考资料取自,问题是什么?展示一些代码会有帮助哦^^^在C#中什么等同于LinkedExecute,或者我如何在C#中实现同样的功能我不知道vb6,但我的同事给我展示了vb6中的示例我明天会向他索要代码我添加了代码采样器相关:@AnAs51993你问题的答案是“请使用.NET中提供的任何其他未弃用的进程间通信机制”。有许多机制,您可能会发现其中一些机制比其他机制更适合您。提供了您选择的概述。您可以通过搜索“进程间通信”来查找更多信息“。对于使用什么来代替DDE,没有一个明确的答案。问题是什么?展示一些代码会有帮助哦^^在C中什么等同于LinkExecute,或者我如何在C中实现同样的功能?我不知道vb6,但我的同事给我展示了vb6 I中的示例