C#命名管道通信遇到的问题

最近在做一个项目,需要C#与C++通信,因此没有用WCF,公司决定用命名管道来解决
进程之间通信,我目前是C#与C#之间使用命名管道进行测试,使用命名管道进行数据传输
很简单,但真正用到项目中会有以下问题:
1. 如何传递操作,即我这次传输的数据是用来干什么的,要转换成什么数据类型?
2.我使用xml序列化引用类型进行传输,最后在接收端进行反序列化,这样频繁的调用资源
会不会影响程序性能(因为要序列化,就需要初始化各种reader,这些很占用资源)?
3,另外,我客户端发消息,服务端要调用接收代码才能得到消息,那么怎么让服务端能自动客户端在任意时间段发出的消息,如果起后台线程用while。。true监听,还是用定时器,隔多少毫秒扫描下,还是有更好的实现方法?

1个回答

  1. 数据如何操作可以定义在不同命名的管道中,也可以定义在数据协议中. 可根据你的具体业务来确定 2.XML的序列化与反序列化调用方便,若性能要求不是特别高是没有什么问题的.如果只是简单的指令处理,根本不用考虑性能问题,如果性能真是比较重要,建议直接发送内存块 3.接收数据的话, C#有BeginRead异步接收(接收消息处理完毕后再调用BeginRead接收) 可以避免开启线程(内部应该是使用的线程池), C++估计就只有用线程+while true比较方便了.
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!