fengtao_01 2017-02-06 11:12 采纳率: 0%
浏览 1825

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

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

  • 写回答

1条回答 默认 最新

  • pc0de 2017-02-06 12:52
    关注
    1. 数据如何操作可以定义在不同命名的管道中,也可以定义在数据协议中. 可根据你的具体业务来确定 2.XML的序列化与反序列化调用方便,若性能要求不是特别高是没有什么问题的.如果只是简单的指令处理,根本不用考虑性能问题,如果性能真是比较重要,建议直接发送内存块 3.接收数据的话, C#有BeginRead异步接收(接收消息处理完毕后再调用BeginRead接收) 可以避免开启线程(内部应该是使用的线程池), C++估计就只有用线程+while true比较方便了.
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘