我有一个需要,计划使用如下的形式来实现。C#软件作为客户服务软件存在。
C#的数据来自某个内存映射文件 。c++部分负责整理数据,并且将数据整理到内存映射文件中。
c++建立的内存映射文件大小是:120Mb
现在需要c#访问由c++建立的内存映射文件。
C++建立的内存映射文件为global访问,理论上可以由同一个计算机的任意进程来访问。问题来了
1这样的架构是否可行。
2c#的读取速度是不是很快。内存内存映射文件

解决方案 »

  1.   

    .Net 4有MemoryMappedFile类
    具体运行时性能取决于你的内存大小和用户的可用内存大小,主板总线的速度等等。C#的不安全代码可以直接访问内存
      

  2.   

    .net访问内存映射文件是基于window系统的api的,不存在“c++的、c#的、vb的内存映射文件”,这些编程工具都是在访问windows api。
      

  3.   

    如果所谓内存映射文件用于跨进程通讯,这其实有些困难。你没有说明不同进程的操作时序,因此我也难以说什么。不同进程需要协同不同的指令,才能协同地读写文件。关于“是不是很快”,我没有测试过。但是在通用的应用计算和调用api的处理等等方面,c#不会比c++慢。