C# 在应用程序/进程之间传递数据

C# 在应用程序/进程之间传递数据,c#,interprocess,data-sharing,C#,Interprocess,Data Sharing,我正在开发一个应用程序来监控我们软件套件的信息,所以我只能从我自己的项目中修改代码,而另一半将依赖于套件程序员。这些程序都将在同一台计算机上运行,监控软件作为服务运行 我很好奇的一件事是如何在应用程序或进程之间共享或传递信息。让我们说,数据是什么类型并不重要,不管我发送字节还是字符串等等,尽管在本质上都是一样的 打开TCP/IP侦听器/连接将数据发送到同一台计算机似乎有些过分,只需在某个端口上侦听以接收信息。还有什么其他选择?我对数据映射做了一些研究,但我唯一关心的是该套件是用delphi编写的

我正在开发一个应用程序来监控我们软件套件的信息,所以我只能从我自己的项目中修改代码,而另一半将依赖于套件程序员。这些程序都将在同一台计算机上运行,监控软件作为服务运行

我很好奇的一件事是如何在应用程序或进程之间共享或传递信息。让我们说,数据是什么类型并不重要,不管我发送字节还是字符串等等,尽管在本质上都是一样的

打开TCP/IP侦听器/连接将数据发送到同一台计算机似乎有些过分,只需在某个端口上侦听以接收信息。还有什么其他选择?我对数据映射做了一些研究,但我唯一关心的是该套件是用delphi编写的,所以我不确定c和delphi在访问数据映射方面是否兼容,delphi是否可以做这样的事情,这是我将要研究的一个研究点


所以我的问题是,在TL中;以某种方式,在进程间级别传输数据有哪些选项?

在这种情况下,我可能会使用监控服务作为使用轮询系统在客户端之间进行通信的手段,例如,使用NetNamedPipeBinding在同一台机器上进行跨进程通信。看

另请参见关于从Delphi应用程序与WCF通信的内容


这种方法的优点是,您可以轻松地将其扩展到一个集中式系统,在该系统中,您有一个后端和多个客户端(如果需要)。

在这种情况下,我可能会使用监控服务作为一种手段,使用轮询系统在客户端之间进行通信,例如,并使用NetNamedPipeBinding在同一台机器上进行跨进程通信。看

另请参见关于从Delphi应用程序与WCF通信的内容


这种方法的优点是,如果需要的话,您可以轻松地将其扩展到一个具有后端和多个客户端的集中式系统。

我想看看使用命名管道的WCF,它非常适合应用程序间通信。

我想看看使用命名管道的WCF,它是应用程序间通信的理想选择。

这里有许多选项。我将研究命名管道以实现快速、高效的进程间通信。然而,我想到了另一个选择,那就是

您要做的是在Delphi程序中实现WMI提供程序,在该程序中发布监控数据。然后,监视服务将使用WMI查询读取数据

这有几个优点。它不会对部署设置实施任何限制,因为远程查询WMI和本地查询WMI一样可行。因此,即使您现在的目标是本地解决方案,您也可以轻松地适应以后的远程设置,只需远程调用WMI而不是本地调用WMI即可


它还允许进程彼此独立地工作,这样您就可以从Delphi套件中以任意速率发布统计数据,并独立于监控服务进行轮询。这里甚至有一些活动支持

这里有很多选择。我将研究命名管道以实现快速、高效的进程间通信。然而,我想到了另一个选择,那就是

您要做的是在Delphi程序中实现WMI提供程序,在该程序中发布监控数据。然后,监视服务将使用WMI查询读取数据

这有几个优点。它不会对部署设置实施任何限制,因为远程查询WMI和本地查询WMI一样可行。因此,即使您现在的目标是本地解决方案,您也可以轻松地适应以后的远程设置,只需远程调用WMI而不是本地调用WMI即可

它还允许进程彼此独立地工作,这样您就可以从Delphi套件中以任意速率发布统计数据,并独立于监控服务进行轮询。这里甚至有一些活动支持