关于c#开辟连续数组内存不够的问题
c#程序是32位的,需要加入一个c++编写的算法处理dll,这个dll参数需要传入两个结构体数组,每个数组大约150mb,一个参数数组是只需要一次开辟重复使用,另一个参数数组需要每次重新开辟新内存传入。整个程序峰值占用600mb内存.
现在的问题是,dll模块只能在第一次调用的时候成功,因为c#使用intptr 传入参数的,并且在第二次调用之前,也已经用Marshal.FreeCoTaskMem将intptr占用的内存释放掉了,后续调用还是会报内存不够的错误。
我分析是因为内存无法开辟所需大小的连续内存。
请问各位,如何解决c#无法开辟连续内存的问题呢,还有其他手段可以将连续的大内存传入dll中吗,或者dll如何修改才能满足要求。。。。