报错时程序只占了30M内存,系统还有2G多可用内存,怎么办呢?
我在程序中调用了两这个函数中的一个
[DllImport("psapi.dll")] private static extern int EmptyWorkingSet(int hProcess); [DllImport("kernel32.dll")] private static extern int SetProcessWorkingSetSize(int hProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);
先是调用了EmptyWorkingSet,然后会在这句报错。后来调用SetProcessWorkingSetSize,后两个参数都传-1,也在这句报同样的错。但如果不调用这两个函数,程序就会提前报内存溢出错误,但报错时程序也只占了500M内存呀,这样还可以让程序 多运行几个小时。
我的程序是一个死循环,我是在每次循环中调用一次这两个函数中的一个,上面这两个函数到底应该怎么调用呢,重复调用会产生副作用吗?
谢谢,问题已经解决。有问题的代码我没有贴出来,是动态注入的javascript代码在删除元素的时候存在内存泄漏,而我的所有操作都是在一个webbrowser上进行,一连几个小时,内存就不够了。
这个不是越界了嘛,又不是空间不够。