如何利用C#实现多进程通信?

lanlicen 2013-03-04 11:09:12
只有一个父进程,可能会派生出大约几十个子进程,然后父进程和每个子进程之间要进行相互的数据交互,请问各位如何实现为好呢?

PS:考虑过命名管道,但是貌似每个管道都需要在单独的线程里面处理,那么父进程就需要为每个管道建立一个专门的线程来处理,那就有几十个线程了。 也考虑过SOCKET,但是由于是在本机,不是特别想用socket
...全文
603 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouhui2315 2015-07-09
  • 打赏
  • 举报
回复
楼主,你找到了解决方案了嘛
  • 打赏
  • 举报
回复
引用 7 楼 lanlicen 的回复:
引用 6 楼 lye2000000_super 的回复:http://www.cnblogs.com/artech/archive/2007/03/05/664825.aspx 这个是撒?貌似和我的主题没什么关系啊
Application Domain是可以实现多进程通信的。。 没好好看看吧。
  • 打赏
  • 举报
回复
http://www.cnblogs.com/artech/archive/2007/03/05/664825.aspx
  • 打赏
  • 举报
回复
引用 3 楼 lanlicen 的回复:
引用 2 楼 dongxinxi 的回复:引用 楼主 lanlicen 的回复:只有一个父进程,可能会派生出大约几十个子进程,然后父进程和每个子进程之间要进行相互的数据交互,请问各位如何实现为好呢? PS:考虑过命名管道,但是貌似每个管道都需要在单独的线程里面处理,那么父进程就需要为每个管道建立一个专门的线程来处理,那就有几十个线程了。 也考虑过SOCKET,但是由……
是的,这是匿名管道最大的缺陷。 管道在Net中已经封装得很好用了,不过LZ也可以考虑用COM组件,要是追求效率,可以考虑用C++来写。合理地运用委托回调,尽可能地避免数据的反复传输
孙大诚_SunRobin 2013-03-04
  • 打赏
  • 举报
回复
不建议使用Socket,因为毕竟是在本机,以网络方式建立连接开销大而且速度慢。
lanlicen 2013-03-04
  • 打赏
  • 举报
回复
引用 2 楼 dongxinxi 的回复:
引用 楼主 lanlicen 的回复:只有一个父进程,可能会派生出大约几十个子进程,然后父进程和每个子进程之间要进行相互的数据交互,请问各位如何实现为好呢? PS:考虑过命名管道,但是貌似每个管道都需要在单独的线程里面处理,那么父进程就需要为每个管道建立一个专门的线程来处理,那就有几十个线程了。 也考虑过SOCKET,但是由于是在本机,不是特别想用socket ……
匿名管道可以处理子进程向父进程发数据么?貌似匿名管道是单向的?
  • 打赏
  • 举报
回复
引用 楼主 lanlicen 的回复:
只有一个父进程,可能会派生出大约几十个子进程,然后父进程和每个子进程之间要进行相互的数据交互,请问各位如何实现为好呢? PS:考虑过命名管道,但是貌似每个管道都需要在单独的线程里面处理,那么父进程就需要为每个管道建立一个专门的线程来处理,那就有几十个线程了。 也考虑过SOCKET,但是由于是在本机,不是特别想用socket ……
LZ有点多虑了吧,建立线程处理,也仅是这个管道有数据读写时才会工作,其他大多数时间都处理监听(阻塞)状态,占用的资源很小。极端的,这些管道(五六十个线程)同时都在工作是不太容易出现的。那些子线程共享的数据,可以放在共享内存中,开启子进程时将虚拟文件句柄作为参数传进去 父子进程通信通过匿名管道可能会更好点,子进程依赖父进程的句柄
lanlicen 2013-03-04
  • 打赏
  • 举报
回复
引用 5 楼 dongxinxi 的回复:
引用 3 楼 lanlicen 的回复:引用 2 楼 dongxinxi 的回复:引用 楼主 lanlicen 的回复:只有一个父进程,可能会派生出大约几十个子进程,然后父进程和每个子进程之间要进行相互的数据交互,请问各位如何实现为好呢? PS:考虑过命名管道,但是貌似每个管道都需要在单独的线程里面处理,那么父进程就需要为每个管道建立一个专门的线程来处理,那就有几十……
我不追求什么效率,只要父进程和各个子进程可以进行双向通信就可以了。当然,选择最优的方案。
lanlicen 2013-03-04
  • 打赏
  • 举报
回复
引用 6 楼 lye2000000_super 的回复:
http://www.cnblogs.com/artech/archive/2007/03/05/664825.aspx
这个是撒?貌似和我的主题没什么关系啊

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧