我正在使用此代码在一个单独的线程上执行我的代码一次,延迟了10秒。
System.Threading.Timer timer = null;
timer = new System.Threading.Timer(e=> {
//My code
timer.Dispose();
},null,10000,System.Threading.Timeout.Infinite);
我想问的是,完成任务后是否需要使用timer.Dispose()
,否则计时器将自动释放。
答案 0 :(得分:1)
是的,您应该始终放置计时器。
来自docs:
当不再需要计时器时,请使用Dispose方法释放 计时器持有的资源。请注意,回调可能会在 因为计时器排队,所以已调用Dispose()方法重载 由线程池线程执行的回调。您可以使用 Dispose(WaitHandle)方法重载以等待所有回调都具有 完成。