首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C# (.NET 2.0)中的进程间通信

C# (.NET 2.0)中的进程间通信
EN

Stack Overflow用户
提问于 2008-09-09 01:00:00
回答 5查看 53K关注 0票数 53

我以前从来没有在Windows上做过IPC。目前我正在开发一对程序,一个标准的GUI/CLI应用程序和一个windows服务。应用程序必须告诉服务该做什么。那么,假设通信仅在本地进行,那么这两个进程的最佳通信方法是什么呢?

其中最好的定义是更健壮,更不容易出错,不是最好的,也不是最容易编码的。

代码示例将非常受欢迎,但不是必需的:-)

注意:我问的是使用什么,标准的TCP套接字,命名管道,还是其他一些通信方式。

谢谢!

EN

回答 5

Stack Overflow用户

发布于 2008-09-08 17:04:17

仅对于本地,我们已经成功地使用了命名管道。避免了TCP的开销,并且几乎(至少对于.NET)与您可以获得的效率一样高,同时也有一个像样的API可用。

票数 7
EN

Stack Overflow用户

发布于 2008-09-08 17:17:00

由于您只能使用WCF2.0,因此.Net可能不是一个好的选择。您可以使用具有共享内存的.Net远程处理作为同一台计算机上的应用程序域之间的底层通信机制。使用这种方法,您可以轻松地将您的进程放在不同的机器上,并将共享内存协议替换为网络协议。

票数 2
EN

Stack Overflow用户

发布于 2010-09-09 05:24:18

与windows服务通信的标准方法是使用服务控制代码。Windows服务可以接收从0到255的代码。0-127为系统预留。128到255可用于自定义命令。

如果您需要使用数据库、xml、文件、tcp、http等将复杂对象发送到服务,则除了用于发送重载配置、过程项等控制命令之外,还应使用此控制代码。

还有其他可用的功能,例如查询服务。请参阅Windows服务文档和api。

http://arcanecode.com/2007/05/30/windows-services-in-c-sending-commands-to-your-windows-service-part-7/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档