我正在使用Winforms在Visual C#中开发应用程序。
该应用程序基本上是一个带有三个选项卡的屏幕。它显示每秒在系统上运行的进程的值(使用System.Diagnostics.Process[]
)。
它生成并更新大量数字和计算(大约4000 /秒)。但是经过10000次迭代或大约45分钟的工作后,它崩溃了,而令人惊讶的部分是它总是在同一时间崩溃。
在Windows XP和Windows 7下,此处涉及的RAM仅为70mb,该应用程序的CPU负载永远不会超过35%。该应用程序的目的是允许用户查看具有cpuload和内存负载的系统上正在运行的进程。由于安全原因,我们无法建议Taskmanager。
C#没有通过任何try - catch
方法捕获该错误
以下屏幕是崩溃后的示例
主应用程序屏幕如下所示
有没有人遇到过这样的情况,即应用程序在固定的运行时间后崩溃了。
请提出一种诊断工具或捕获此类错误的方法。
感谢您的答复
最佳答案
尝试将其添加到您的服务中的主要空白处
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
public static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
// do your logging here, write to a file, or send an email
}
和
service.ExceptionThrown += service_ExceptionThrown;
private static void service_ExceptionThrown(object sender, ExceptionThrownEventArgs e)
{
// do your logging here, write to a file, or send an email
}
如果要在Visual Studio中调试服务,则只需在命令行参数中通过启动选项添加-d
关于c# - Winforms应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11573730/