软件有一个自动关闭功能(长时间不动软件后,软件一场,不名原因),运行一段时间后提示用户,如果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时,软件异常。
根本原因还未定位具体位置。