eba*_*eba 6 .net dispose timer callback
我正在使用Threading.Timer,如:
new Timer(new TimerCallback(y=>
{
    try
    {
        Save(Read(DateTime.Now));
        // here i want to dispose this timer
    }
    catch
    {                          
    }
}),null,100000,10000);
如何在回调中处理此计时器.或解决方法?更新:让我解释一下情况.我想尝试调用方法"保存",同时抛出异常.如果它工作,我需要停止计时器.
Jak*_*sen 15
试试这个:
Timer timer = null;
timer = new Timer(new TimerCallback(y =>
{    
    try    
    {
        Save(Read(DateTime.Now));        
        // here i want to dispose this timer
        timer.Dispose();    
    }    
    catch    
    {    
    }
}));
timer.Change(10000, 10000);
编辑:
我根据Chuu的建议稍微修改了上面的代码.请注意,如果通过不同的计时器事件同时调用TimerCallback,则Timer.Dispose可能最终被多次调用.幸运的是,Timer它不关心它是否被处理了好几次.