我正在尝试在2个程序之间进行通信,但我找不到如何。
Process p = Process.Start(Secondprogram.exe, "number = " + number);
p.WaitForExit();
this.Close();
我希望在第二个程序中收到该号码并在那里使用它。
或类似的东西:
Process p = Process.Start(Secondprogram.exe);
Parameter number = 1200;
p.WaitForExit();
this.Close();
然后在我的第二个项目中:
txtSomething.Text = number;
答案 0 :(得分:3)
您有几种选择:
使用WCF可以轻松切换绑定。因此,如果在同一台机器上有两个进程,则可以使用命名管道绑定,这是一种进程间通信。如果您以后决定将流程分离到不同的机器上,您只需将配置更改为 tcp绑定,一切都将继续工作
如果您使用REST,则会有客户端 - 服务器框架,例如自托管的ASP NET Web API或Nancy
如果它简单易懂,您只需写入文件并从文件中读取,并与全局命名的互斥锁结合以同步访问
还可以选择内存映射文件,其中一个进程写入文件,另一个进程从中读取。这有点令人讨厌,我很少见到这个。
或者另一种传统方法是使用第三方,例如数据库或消息队列系统
答案 1 :(得分:1)
您可以使用第一个程序的输出流作为第二个程序的输入流。检查ProcessStartInfo:https://msdn.microsoft.com/fr-fr/library/system.diagnostics.processstartinfo%28v=vs.110%29.aspx