我遇到了几个在.net中处理MMF的教程。所有这些方法都采用了类似的方法 - 序列化文件并作为字节批量写入并批量读取为字节并反序列化。
理论上,我不需要对整个哈希表进行反序列化以使其可操作,只是我要查找kvp的一小部分。我认为我可能不得不写一个自定义类来做这件事,但为了以防万一 - 有没有办法让.net对象将mmf视为实际的ram?
答案 0 :(得分:2)
没有
最接近的是使用unsafe
代码,这样可以更好地控制非托管指针。但是,您需要使用struct
和其他“原始”类型 - 不支持类。
然而,很难说这是什么意思 - 你丢掉了你首先使用C#的全部原因。像HashSet
或甚至List<T>
这样的类很大程度上依赖于自动内存管理,这是unsafe
代码无法做到的。也许最好将C / C ++用于代码的那一部分,并将其作为DLL链接?