在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.System.IO.MemoryMappedFiles 内存映射文件类 内存映射文件还可以在多个进程之间进行共享。 未映射映射文件时,更改都将自动传播到磁盘。 CreateNew 方法创建一个未映射到磁盘上的现有文件的内存映射文件;而且这些方法还适合创建用于进程间通信 (IPC) 的共享内存。 内存映射文件与名称相关联。 对同一文件创建两个文件映射的两个视图不具有并发性。(https://msdn.microsoft.com/zh-cn/library/system.io.memorymappedfiles.memorymappedfile(v=vs.100).aspx) 常用函数: [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] public static MemoryMappedFile CreateOrOpen( string mapName, //要分配给内存映射文件的名称。 long capacity,//要分配给内存映射文件的最大大小(以字节为单位)。 MemoryMappedFileAccess access,//ReadWrite。 MemoryMappedFileOptions options,//枚举值的按位组合,用于为内存映射文件指定内存分配选项。 MemoryMappedFileSecurity memoryMappedFileSecurity,//此参数可以为 null。 HandleInheritability inheritability//None。 ) public static MemoryMappedFile CreateNew( string mapName, //要分配给内存映射文件的名称。 long capacity //要分配给内存映射文件的最大大小(以字节为单位)。 ) static void Main(string[] args)
{
using (MemoryMappedFile mmf = MemoryMappedFile.CreateNew("testmap", 10000))
{
bool mutexCreated;
Mutex mutex = new Mutex(true, "testmapmutex", out mutexCreated);
using (MemoryMappedViewStream stream = mmf.CreateViewStream())
{
BinaryWriter writer = new BinaryWriter(stream);
writer.Write(1);
}
mutex.ReleaseMutex();
mutex.WaitOne();
using (MemoryMappedViewStream stream = mmf.CreateViewStream())
{
BinaryReader reader = new BinaryReader(stream);
Console.WriteLine("Process A says: {0}", reader.ReadBoolean());
Console.WriteLine("Process B says: {0}", reader.ReadBoolean());
Console.WriteLine("Process C says: {0}", reader.ReadBoolean());
}
mutex.ReleaseMutex();
}
}
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论