本文共 442 字,大约阅读时间需要 1 分钟。
使用Marshal快速申请释放大数组。
使用AllocHGlobal()
函数开辟空间: static void Main(string[] args){ for (int i = 0; i < 10000; i++) { Foo(); } Console.ReadKey();}private static void Foo(){ int n = 100000;//长度 IntPtr buffer = Marshal.AllocHGlobal(sizeof(int) * n);}
使用Marshal申请内存是没有经过管理的,如果没有手动释放,那么就出现内存泄露,手动释放内存:
Marshal.FreeHGlobal(buffer);
Marshal具体的使用方法如遍历、赋值等参考链接:
大神有分享封装好的类,感兴趣的可以使用:
转载地址:http://nloen.baihongyu.com/