首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何订阅资源耗尽诊断事件?

如何订阅资源耗尽诊断事件?
EN

Stack Overflow用户
提问于 2013-09-17 17:41:46
回答 1查看 586关注 0票数 0

我想知道Windows 7何时检测到我的程序占用了太多内存。所以我想处理这件事。如何订阅此事件(在应用程序关闭之前)。

Windows日志中的一些信息:

Windows成功地诊断出一种低虚拟内存状况。以下程序消耗了最多的虚拟内存。事件ID: 2004关键词:与耗尽系统提交限制有关的事件(虚拟内存)。

在Windows中检测低虚拟内存条件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-17 18:27:15

代码语言:javascript
复制
System.Diagnostics.EventLog eventLog = new System.Diagnostics.EventLog("System", ".", "Resource-Exhaustion-Detector");
eventLog.EnableRaisingEvents = true;
eventLog.EntryWritten += eventLog_EntryWritten;

static void eventLog_EntryWritten(object sender, System.Diagnostics.EntryWrittenEventArgs e)
{
   if (e.Entry.Message.Contains(Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName)))
   {
      Logger.Error("Our application consumed too much memory `{0}`. So we stopping work right now to prevent reboot OS.", new object[] {e.Entry.Message},MethodBase.GetCurrentMethod());
      GC.Collect();
      //do smth                
   }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18856424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档