关于共享内存区的疑问
是这样,我明白创建共享内存区,分这四步:1.CreateFileMapping //创建共享内存区
2.MapViewOfFile //映射共享内存区
3、UnmapViewOfFile //用完之后关闭映射
3.closehandle //关闭对象句柄
应该是在第二步后靠MapViewOfFile的返回一个指针来操纵那块内存区,这里我都明白
现在呢,我的程序其他部分还有机会访问到这块内存区,按照我之前的理解,我会把上面的四个API做的步骤放到一个初始化函数里用于创建这块共享内存区,但其他函数还会访问这块区域
再用到此共享区的时候我会再用四个API:
1.OpenFileMapping //打开已有的文件映射内核对象
2.MapViewOfFile //映射共享内存区
3、UnmapViewOfFile //用完之后关闭映射
3.closehandle //关闭对象句柄
可以发现后三个API是一样的,所以我怀疑closehandle这个步骤到底是完全是释放了吗?为什么还可以open开呢?
者是第一个疑问
第二个疑问,我想提高程序的效率,在我初始化这块内存区的时候,只做到第三步,也就是UnmapViewOfFile,但不关闭对象即closehandle,那么我下次再用的时候,是不是可以直接从第二个api开始即MapViewOfFile,用完之后也UnmapViewOfFile,但不关闭对象即closehandle
等程序退出前,我closeHandle掉这个对象,不知道可以否??
以上两个问题,请有经验的大神给与解答!谢谢了~