C#.Net关闭超出内存使用情况的应用程序

Har*_*rya 1 .net c#

我有一个处理大量内存数据的应用程序.现在,有时会发生内存限制为2GB/app并且我的程序挂起.任务管理器中的内存使用量变得混乱(连续波动从2GB到6GB)我想要的是当内存使用量达到特定限制时,程序应该优雅地退出.我不想手动干预用户查杀应用程序.这可能吗?

Lit*_*eas 6

您应该分配一个后台监视线程,它会轮询System.Diagnostics.Process.GetCurrentProcess().PrivateMemorySize64,然后根据返回的大小进行操作.

例如.

public class MonitoringThread : Thread{
...

bool working = true;
void run(){
   while(working){
      long size = Process.GetCurrentProcess().PrivateMemorySize64;
      if (size > 2000000000){
         //do anything
      }
      else {
         try{
            Thread.Sleep(1000);
         }
         catch{}
      }
   }
}

}
Run Code Online (Sandbox Code Playgroud)

请注意,我刚刚在此页面中编写了此代码,因此可能不太准确:)