i0703mtf 2020-09-03 12:07 采纳率: 100%
浏览 157
已采纳

C#软件自动关闭异常,不知道是什么原因

软件有一个自动关闭功能(长时间不动软件后,软件一场,不名原因),运行一段时间后提示用户,如果60秒未操作,自动关闭,有时候会有有异常提示,不知道是什么原因,请帮忙查看一下,谢谢!
代码如下:

try
            {
                Thread closeErr = new Thread(new ThreadStart(() =>
                {
                    uint logTmp = 0;
                    while (DateTime.Now.Subtract(lastActionTime).TotalSeconds < closeTime)
                    {
                        Thread.Sleep(10000);//10秒检查一次
                    }

                    waitGO = false;
                    ThreadPool.QueueUserWorkItem((obj) =>
                    {

                        int closeNum = 60;
                        while (closeNum > 0)
                        {
                            Thread.Sleep(1000);

                            this.TopMost = true;
                            SetCloseBtnTest("关闭(" + closeNum.ToString() + "s)");
                            closeNum--;
                        }
                        SetCloseBtnTest("关闭...");
                        if (!waitGO)
                        {

                            btnClose_Click(null, null);
                        }

                    }, null);

                    {
                        this.ShowDialog();
                    }

                }));
                closeErr.IsBackground = true;
                closeErr.Start();
            }

            catch (System.Exception ex)
            {
                LogEntry(ex.Message);
            }

错误提示:
图片说明

图片提示时调用xxx.b_0()方法;
目前识别到的一种规避方案是在启动线程内部添加异常处理(只能防止异常崩溃),本质不是异常原因;
ThreadPool.QueueUserWorkItem((obj) =>
{try{}catch{}...

后续定位可能是由于内存异常导致;
在任务管理器中产看进程的“非分页内存”持续增高到3M-4M时,软件异常

根本原因还未定位具体位置。

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-09-03 12:34
    关注

    错误提示没有看到,
    LogEntry(ex.Message);记录下错误了么

    btnClose_Click(null, null);
    线程里面调用界面,用 Invoke 委托没有?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler