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 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配