内存共享实现进程间通信及文件的并发访问,该怎么处理

内存共享实现进程间通信及文件的并发访问
如何使用MemoryMappedFile实现一个进程多线程写一个XML文件,另一个进程多线程读此XML文件。
通过创建CreateViewStream,一直提示少根元素:
  Student stu = new Student()
            {
                Age = 10,
                Class = "一般qw",
                Name = "Tom",
                Number = 1,                
                mac="goodbyte"
                
            };
using (var memoryFile = MemoryMappedFile.CreateFromFile("c:\\x.xml", FileMode.Open, "substationfile", 100*1024, MemoryMappedFileAccess.ReadWrite))
            {
                using (var mmf = MemoryMappedFile.OpenExisting("substationfile"))
                {
                    using (var ms = mmf.CreateViewStream())
                    {

                        XmlSerializer serializer = new XmlSerializer(typeof(Student));
                        serializer.Serialize(ms, stu);                        
                        var xmlClass = new XmlDocument();                    
                        xmlClass.Load(ms);// 出错少根元素

}
}
}

            
------解决思路----------------------
没创建根元素?