我是否需要在完成任务后处理System.Threading.Timer



我使用此代码在单独的线程上以 10 秒的延迟执行我的代码一次。

System.Threading.Timer timer = null;
timer = new System.Threading.Timer(e=> {
    //My code
    timer.Dispose();
    },null,10000,System.Threading.Timeout.Infinite);  

我想问一下,如果我在完成任务后需要使用timer.Dispose(),否则计时器将自动释放。

是的,您应该始终释放计时器。

从文档中:

当不再需要计时器时,请使用 Dispose 方法释放 计时器持有的资源。请注意,回调可能发生在 已调用 Dispose() 方法重载,因为计时器排队 线程池线程执行的回调。您可以使用 Dispose(WaitHandle)方法重载,以等待所有回调都有 完成。

最新更新