.NET6/C# 引入NativeMemory
类,但我不知道什么时候应该使用NativeMemory.Alloc()
而不是普通的数组实例化(new T[]
)。我的问题是:
-
内存中的哪个区域NativeMemory.Alloc()
填充对象?该方法是否填充托管堆中的对象?
-
什么样的情况我们应该使用NativeMemory.Alloc()
代表new T[]
?
参考:https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.nativememory?view=net-6.0 https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.nativememory?view=net-6.0
看起来像是“C 上的薄包装纸”malloc
API。”因此,如果我没记错的话,它将在非托管堆上分配内存。
至于第二个问题,我真的想不出任何特定的场景(除了一些边缘情况)在.NET中有用(尽管我确信它们存在),而人们还没有使用C /C++。除此之外,我想人们会在速度绝对至关重要的情况下使用它(例如渲染)。
它刚刚被添加,以便我们可以选择使用 C/C++ 之类的内存管理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)