我有一个System.Timers.Timer定时器,它的AutoReset设置为false。我使用try/finally来确保在计时器的callback的末尾使用计时器(我以这种方式使用计时器以防止callback执行的重叠)。代码:try // Do somethingfinally timer.Start(); // Is thi
在独立线程中运行以下代码: var stuffToDispose = new SomeClassThatNeedsDisposing();finally{ stuffToDispose.Dispose();使用引发ThreadAbortException的机制中止这个线程。ThreadAbortException会发生在n
可能重复:
try { } finally // Called in a finally because it needs toqueued = IOThreadScheduler.current.ScheduleCallbackHelper(callback, state);有趣的把戏。有人能给出解释吗?
我使用的是Thread2.0,如果.NET超时,finally块似乎不会被执行。例如,如果我看到消息“子线程超时...”,我就不会看到消息"Finally block started...“。这意味着数据库对象(Oracle.DataAccess)可能没有得到正确的清理。有没有办法在子线程内部强制清理,或者应该将清理移动到主线程并将数据库对象传递给子线程?threadHelper.Abort(); // This will trigger the exception han