最简单的方法是什么? (它不一定是最优雅的。)
之类的开源库可能是一个更好的主意,更易于设置并且更快。 您可以尝试.NET远程。这是一个简单的示例:codeproject .net远程.。
如果您使用的是.NET 3.5,则应该选择WCF,因为远程逐渐过时。同样,周围有许多我创建了我自己的开源库,用于快速简便的IPC,它在Windows服务,控制台应用程序和Windows表单之间工作。 它比现有的IPC实现具有一些优势,并且不需要任何配置。
请参阅Herey.
,或者,如果程序被顺序执行,则可以尝试剪贴板...但是该解决方案丑陋地狱,并且是越野车(有时.NET无缘无故地无法访问剪贴板)。
I创建了一个简单的类,该类使用IPCCHANNEL类进行间流程通信。 这是github的一刻。 服务器端代码:
活动听众:
private void IpcClientServer_MessageReceived(object sender, MessageReceivedEventArgs e)
{
if (InvokeRequired)
{
Invoke(new MethodInvoker(delegate { textBox2.Text += e.Message +
Environment.NewLine; }));
}
else
{
textBox2.Text += e.Message + Environment.NewLine;
}
}
if (ipcClientServer == null)
{
ipcClientServer = new IpcClientServer();
ipcClientServer.CreateClient("localhost", 9090);
}
ipcClientServer.SendMessage(textBox1.Text);
我会说让他们在插座上说话。
在插座上有一个程序
listen
,将另一个程序带到第一个程序。 作为数字字符串,将两个整数发送到单行上。
唯一的问题是他们应该如何就端口号达成共识,以及他们如何知道他们彼此交谈。 他们可以通过您确定您的端口号码,决定他们应该始终使用端口12345(例如),而第二部分的肮脏 - 刺激措施就是相信您正在与您交谈的人成为一个好人。完成完整性,您也可以使用
connect
和
net.pipe
。
如果您希望一个程序从另一个程序中获得的数据不多,那么您只能让一个程序在某处创建一个.txt文件,然后让另一个程序读取文本文件。我不是专业人士,但是看到具有流媒体的观察者设计模式
似乎是最理想的途径,但是在多线程应用程序中,它具有沉重负载的限制(您会得到太多的上下文开关)。
作为业余程序员,我发现XDMessging对我来说很容易和简单。 它在nuget
中,因此也很容易安装。这是xdmessaging的