有没有办法将内存映射文件用作.net对象的活动容器?

时间:2015-09-22 13:05:04

标签: .net

我遇到了几个在.net中处理MMF的教程。所有这些方法都采用了类似的方法 - 序列化文件并作为字节批量写入并批量读取为字节并反序列化。

理论上,我不需要对整个哈希表进行反序列化以使其可操作,只是我要查找kvp的一小部分。我认为我可能不得不写一个自定义类来做这件事,但为了以防万一 - 有没有办法让.net对象将mmf视为实际的ram?

1 个答案:

答案 0 :(得分:2)

没有

最接近的是使用unsafe代码,这样可以更好地控制非托管指针。但是,您需要使用struct和其他“原始”类型 - 不支持类。

然而,很难说这是什么意思 - 你丢掉了你首先使用C#的全部原因。像HashSet或甚至List<T>这样的类很大程度上依赖于自动内存管理,这是unsafe代码无法做到的。也许最好将C / C ++用于代码的那一部分,并将其作为DLL链接?