我在C#.NET 3.5中。 看来,通过从同一个线程注册超过10个System.Threading.Timers导致第一个以某种方式消失... 虽然不能相信它。如果那是真的,我会更加震惊。可以从一个线程使用System.Threading.Timer启动多少个线程(定时器)?
这里是行,我在那里启动一个定时器,每次有新邮件到达时:
System.Threading.Timer tmr = new System.Threading.Timer(WaitAckElapsedTmrHandler, msgId, Constants.TIME_TO_WAIT_FOR_ACK, Timeout.Infinite);
还有什么可能是我的问题吗? 我相信已经正确地锁定了所有的线程共享资源,甚至仔细记录了所有进/出锁区域 - >所以我看不到任何死锁。
如何在这种情况下检测到死锁?
情况并非如此。创建多个'Timer'对象不会破坏较早的对象。 – Servy