C#共享内存缓存

时间:2011-04-01 17:34:39

标签: c# caching memory shared

有没有人知道使用共享内存的C#中的开源实现。 .NET 4.0(我们没有内存映射文件实现。

最好使用id索引。

3 个答案:

答案 0 :(得分:2)

Enterprise Library有一个缓存应用程序块。请参阅此处:Microsoft Enterprise Library 5.0 – April 2010获取最新版本(.NET 3.5和.NET 4)。如果您的要求较低,旧版本也会有此缓存应用程序块。

答案 1 :(得分:2)

[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr CreateFileMapping(
    IntPtr hFile,
    IntPtr lpFileMappingAttributes,
    FileMapProtection flProtect,
    uint dwMaximumSizeHigh,
    uint dwMaximumSizeLow,
    [MarshalAs(UnmanagedType.LPTStr)] string lpName);

请点击此处了解更多信息

http://www.pinvoke.net/default.aspx/kernel32.createfilemapping

http://msdn.microsoft.com/en-us/library/aa366551(v=vs.85).aspx

C#Cookbook包含SharedMemoryManager的实现,您可以在此处查看: http://csharp.codefetch.com/example/p1/MutexFun/SharedMemoryManager.cs

答案 2 :(得分:1)

你有几个选择。

我会选择内存映射文件,因为你会获得更好的性能。一切都取决于你想要达到的目标。看一下.NET Framework 4.0。 System.IO.MemoryMappedFile.

的实施