使用c#在两个进程之间进行通信

Posted

技术标签:

【中文标题】使用c#在两个进程之间进行通信【英文标题】:Communication between Two process using c# 【发布时间】:2017-05-19 04:30:06 【问题描述】:

我有一个 Windows 窗体应用程序,其网格显示来自 mysql 数据库的数据。

我在后台运行了另外一个应用程序,它通过外部应用程序提供的 Api 连接到外部应用程序。此应用程序会根据外部应用程序上发生的特定事件更新相同的数据库。

现在的问题是,每当后台应用程序更新数据库时,都必须在不刷新网格的情况下反映在数据网格中。即数据必须实时更新。

已经完成了将网格与数据表绑定,但我没有找到任何适用于 MYsql 的解决方法。

还检查了进程间通信,以便我可以让后台应用程序更新数据库以及前台应用程序。 IPC 显示了很多选项,但我无法找出最适合我当前要求的选项。

如果有人建议解决此问题的最佳解决方法,那将非常有帮助。

注意:前台是winform应用在.net 3.5上运行,后台控制台应用在.net4.0上,因为与外部应用的api存在兼容性问题。

【问题讨论】:

WCF 是从哪里来的? 听说 WCF 可用于进程间通信.. 澄清一下 - 您有一个直接从 WinForms 应用程序查询的数据库。 WinForms 应用程序以网格的形式显示数据库中的数据。您有另一个可以更新数据库的应用程序。您希望网格同时更新吗? dotnet-experience.blogspot.co.uk/2012/02/… 【参考方案1】:

据我了解,您尝试同步数据网格的表更新。

我的建议是使用:

datagrid.refresh();

并将其绑定到计时器以每秒或每分钟刷新一次。

【讨论】:

这并没有解决 OPs 问题。问题不是刷新网格,而是实时刷新网格以响应底层数据库的更改,其中数据可以随时更改。

以上是关于使用c#在两个进程之间进行通信的主要内容,如果未能解决你的问题,请参考以下文章

如何使用标准输入和标准输出在 C# 和 ruby​​ 进程之间进行通信

C# 两个进程之间通讯(管道通信 )

在c#中使用命名管道在两个进程之间进行双工操作

c# 进程间的通信实现之一简单字符串收发

C# 和 VBA 之间的通信

在 C# 中的两个窗体之间进行通信