在Visual Basic .NET中分配特定数量的物理内存?

时间:2012-12-17 16:09:40

标签: vb.net memory memory-management ram

我知道这是一个奇怪的问题,但你怎么...分配物理内存?我知道使用New会创建一个新对象,但它并没有分配我正在寻找的东西。以下是我正在寻找的内容:http://www.soft.tahionic.com/download-memalloc/index.html

该程序以我想要的方式分配内存。我怎么去分配...说500 MB?或者VB.NET不会允许这样,因为它的内存管理?我尝试使用谷歌搜索内存流和非管理内存流,但我不知道如何开始。我也试过制作大型数组,但这似乎有点......不专业。我只使用VB.NET一年左右。有人可以帮助我开始吗?顺便说一句,我刚加入。很高兴见到你们!

2 个答案:

答案 0 :(得分:2)

您可以像这样分配和释放指定的非托管内存块:

Dim handle As IntPtr = Marshal.AllocHGlobal(size)
Marshal.FreeHGlobal(handle)

有关详细信息,请参阅MSDN。您也可以使用Marshal.AllocCoTaskMem方法并将其与Marshal.FreeCoTaskMem释放。

答案 1 :(得分:0)

使用HeapAlloc

pinvoke等windows api函数