.net - 有没有办法使用内存映射文件作为 .net 对象的事件容器?

标签 .net

我在 .net 中遇到了几个处理 MMF 的教程。不过,它们都采用类似的方法 - 序列化文件并以字节形式批量写入,以字节形式批量读取并反序列化。

但从理论上讲,我不需要反序列化整个哈希表即可使其可操作,只需反序列化其中我要查找 kvp 的一小部分即可。我想我可能需要编写一个自定义类来执行此操作,但以防万一 - 有没有办法让 .net 对象将 mmf 视为实际的 ram?

最佳答案

没有。

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

但是,很难说出这样做的意义是什么 - 您首先抛弃了使用 C# 的全部原因。像HashSet这样的类甚至 List<T>严重依赖自动内存管理,这是你根本无法做到的 unsafe代码。也许对这部分代码使用 C/C++ 并将其链接为 DLL 会是一个更好的主意?

关于.net - 有没有办法使用内存映射文件作为 .net 对象的事件容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32717687/

相关文章:

asp.net - Visual Studio 2013。您没有足够的权限访问计算机上的 IIS 网站

c# - 如果所有静态方法都是默认的扩展方法,会发生什么?

C# 复制构造函数

c# - 测试序列化的最佳方法是什么?

c# - 如何获取列表框中的项目数

c# - Linq to SQL 并在 ASP.NET MVC 5 Identity 中选择用户的项目

c# - 在 asp.net 中传递双引号

c# - 使用 BrowserSession 和 HtmlAgilityPack 通过 .NET 登录 Facebook

ASP.NET WebAPI 将 urlencoded 正文中的空字符串作为 null 传递

c# - 使用 System.Web.Script.Serialization.JavascriptSerializer 反序列化 JSON - 怎么做?