我使用此代码在单独的线程上以 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)方法重载,以等待所有回调都有 完成。