请教各位大侠,我想用非持久方式创建共享内存,用于进程间通信。构造函数里有个参数【Capacity】,说是创建的内存文件最大大小,貌似是字节为单位吧,可是我创建的时候给这个参数传了个【2】,却仍然能往里面写5个字节,还能在另个进程里完整的读出来。这是为什么?不会是已经溢出了吧。
还有,我想实现的目的是往内存里写入N个对象,在另个进程里读出来,读出来后的对象在内存里就没有存在的必要了,这个过程是循环的。我这种需求用内存映射文件是否合适?

解决方案 »

  1.   

    关于第一个问题我明白了,是簇的原因,文件是以簇位单位保存的,一个簇4K字节,所以文件的实际大小是4K、8K、12K等。。
    关于第二个问题,有没有办法让内存文件以队列形式保存数据?就是数据写到文件最后一个字节后,返回到文件第0字节再开始写。
      

  2.   


    感谢MM
    不过还是觉得普通的MemoryMappedFile就好,在文件的起始位置加个保存Position的int数据。