21得票1回答
为什么(以及如何)ASP.NET缓存被存储在非托管内存中?

各位 ASP.NET 专家请注意:我使用 Reflector 查看了 ASP.NET 缓存实现(底层使用 HttpRuntime.Cache 和 HttpContext.Current.Cache),发现它在内部使用 Hashtable 来维护缓存。 然而,数据被存储在非托管内存中。这很奇怪...

20得票8回答
如何清空由Marshal.AllocHGlobal分配的内存?

我正在通过Marshal.AllocHGlobal在我的应用程序中分配一些未管理的内存。然后,我将一组字节复制到此位置,并将内存段转换为struct,最后通过Marshal.FreeHGlobal释放内存。 以下是该方法: public static T Deserialize<T&...

15得票1回答
C#如何使用Memory<T>或ArraySegment<T>访问不受托管的数组?

在C# 7.2中引入了Memory、Span和ArraySegment,我想知道是否可以将非托管数组表示为一个生存在堆上的可枚举对象。后面这个要求排除了Span,它基本上实现了我想要的功能,例如:unsafe { bytes = new Span&lt;byte&gt;((byte*)ptr ...

13得票8回答
如何在非托管内存中实例化一个C#类?(可能吗?)

更新:现在有一个被接受的答案可以“工作”。你永远不应该使用它。永远。 首先,我要说明我的问题,我是一名游戏开发人员。想要这样做有一个合理的 - 尽管非常不寻常 - 与性能相关的原因。 假设我有一个像这样的 C# 类: class Foo { public int a, b...

7得票1回答
在WPF中呈现非托管视频帧的最佳性能方法是什么?

我正在使用FFmpeg库来接收和解码H.264 / MPEG-TS通过UDP传输的视频,以实现最小延迟(MediaElement无法处理此类内容)。 在专用的FFmpeg线程上,我获取PixelFormat.Bgr32视频帧进行显示。 我已经尝试过InteropBitmap: _secti...