共享内存的疑惑
共享内存的疑惑 上一篇文章中” .net remoting和wcf自托管――一个bug引发的警示 ”,我稍微提了下c++的共享内存,当时我有一个推测,就是在客户端读取共享内存前,谁修改过共享内存。但是我经过了好多次调试,发现只有一次写内存,其它的都是读取内存,这个值是怎么变的呢?目前还不清楚。当共享内存刚刚写完后,立即读出来的值是正确的,等过“一小会”,可能就是多少毫秒吧。再次读取的值就变了。这正是我百思不得其解的地方。 代码是前辈写的,可能擅长c++,继续上一篇的文章,我把c++的代码贴出来: static ShareDataRW() { Handle = CreateFileMappingA ( new IntPtr(- 1 ), IntPtr.Zero, 0x04 , 0 , 1024 , " Local\\NoteFirstShare_Memory " ); if (Handle == IntPtr.Zero) return ; ShareDataMemoryPoint = MapViewOfFile (Handle, SECTION_ALL_ACCESS, 0 , 0 , 1024 ); ShareDataType = typeof (ShareData); if (OfficeAddinServicesPort == 0 )