こちらとか。
https://dotnetcodr.com/2016/12/11/messaging-through-memory-mapped-files-in-net-c-2/
http://devlights.hatenablog.com/entry/20101123/p1
文字列の大きさを多めに取っておくのが嫌なら、サイズも書いておく。
# Write byte[] Buffer = Encoding.UTF8.GetBytes("Hello"); MemoryMappedFile mmf = MemoryMappedFile.CreateNew("test", 1000); MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor(); accessor.Write(0, (UInt16)Buffer.Length); accessor.WriteArray(sizeof(UInt16), Buffer, 0, Buffer.Length); # Read MemoryMappedFile mmf = MemoryMappedFile.CreateNew("test", 1000); MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor(); ushort Size = accessor.ReadUInt16(0); byte[] Buffer = new byte[Size]; accessor.ReadArray(sizeof(UInt16), Buffer, 0, Buffer.Length); MessageBox.Show(Encoding.UTF8.GetString(Buffer));
http://stackoverflow.com/questions/10806518/write-string-data-to-memorymappedfile
でも、文字列より後に続くデータがあると位置が変わっちゃうので、大きめに取っておく方が無難。
MMF に置いておくデータを、まるっと構造体で持っておいた方が位置を気にしなくて良いので楽なのは、C# も同じです。