我为 Timer 类编写了扩展方法以在一定时间后将其销毁。似乎它实际上只在 timer.enable 字段中设置了 false,但并没有真正将整个设置为 false。有没有办法从它自己的扩展方法中取消一个对象?
还有一件事 - 以这种方式实现它是一种好习惯,还是我应该期待同步问题和更多惊喜?
timer.DestroyAfter(1.Hours()) :
public static void DestroyAfter(this Timer timer, TimeSpan timeSpan)
{
var killingTimer = new Timer(timeSpan.TotalMilliseconds)
{
AutoReset = false,
};
killingTimer.Elapsed += (sender, e) =>
{
timer.Stop();
**timer = null;** //doesn't seem to work though line is executed
killingTimer.Stop();
killingTimer = null;
};
killingTimer.Start();
}