我有一个处理大量内存数据的应用程序.现在,有时会发生内存限制为2GB/app并且我的程序挂起.任务管理器中的内存使用量变得混乱(连续波动从2GB到6GB)我想要的是当内存使用量达到特定限制时,程序应该优雅地退出.我不想手动干预用户查杀应用程序.这可能吗?
您应该分配一个后台监视线程,它会轮询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)
请注意,我刚刚在此页面中编写了此代码,因此可能不太准确:)
| 归档时间: |
|
| 查看次数: |
985 次 |
| 最近记录: |