将操作延迟几秒钟的最佳方法是什么?我在stackoverflow上找到了以下代码:
var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) };
timer.Start();
timer.Tick += (_sender, _args) =>
{
timer.Stop();
operation();
};
但我认为垃圾收集器不够聪明,无法从内存中删除该计时器,因为它不知道这Tick
取决于Start
/Stop
操作,并且该计时器将不再打开。
我想我需要先删除一个事件,但要做到这一点,我必须将 lambda 提取到一个单独的方法中。有没有更好的方法来简单地延迟手术?