我有一个有点复杂的 .net 控制台应用程序,它使用 WPF 来处理一些通知窗口,并执行一些 http 调用。在极少数情况下,该应用程序崩溃并且我能够获得的唯一错误消息来自 Windows 事件查看器:
Application: xyz.exe
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ObjectDisposedException
Stack:
at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean ByRef)
at Microsoft.Win32.Win32Native.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle)
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()
我不知道堆栈跟踪来自哪里。任何想法在哪里寻找这个问题?以下是我的一些想法:
既然堆栈上有这个计时器的东西,它可能与System.Threading.Timer有关吗?因为代码中使用了一些计时器?
还涉及一些使用超时的 http 通信(httpclient、httpwebrequest)。可能与此错误有关吗?
抱歉这个非常不具体的问题,但我完全被困在这里,只需要某种起点。