c# - Winforms应用程序崩溃

标签 c# winforms crash process diagnostics

我正在使用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/

相关文章:

c# - 404自定义重定向

c# - 为什么 CloudBlockBlob.DownloadToStream 始终返回空流?

c# - MVP,类应该在哪里创建?

C#,BindingNavigator,右端丑陋的线条

c++ - unique_ptr<T>.get() 方法在使用原始指针分配时调用析构函数?

crash - 使用NSUserDefaults导致timeIntervalSince1970崩溃

c# - Linq orderby 文化(丹麦语,æøå)

winforms - 如何在远程计算机上启动调试过程?

kubernetes - nginx-ingress-controller-CrashLoopBackOff-proxmox上的kubernetes(kvm)

c# - CQRS 的事件总线