[英]C# .Net Close application on exceeding memory usage
我有一個處理大量內存數據的應用程序。 現在,有時會發生什么情況,即達到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{}
}
}
}
}
請注意,我只是在此頁面中編寫了此代碼,所以它可能不太准確:)
完整的垃圾收集完成后,您可以使用Garbage Collection Notifications
來發出警報。
對此,您可以檢查GC.GetTotalMemory()
以查看當前使用了多少內存,如果內存過多,請采取適當的措施。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.