【发布时间】:2013-09-20 12:13:05
【问题描述】:
将操作延迟几秒钟的最佳方法是什么? 我在stackoverflow上找到了以下代码:
var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) };
timer.Start();
timer.Tick += (_sender, _args) =>
{
timer.Stop();
operation();
};
但我认为垃圾收集器不够聪明,无法从内存中删除此计时器,因为它不知道 Tick 依赖于 Start / Stop 操作,并且该计时器将不再打开.
我想我需要先删除一个事件,但要做到这一点,我必须将 lambda 提取到 一个单独的方法。有没有更好的方法来简单地延迟操作?
【问题讨论】:
-
看看
System.Threading.SpinWait
标签: c# memory-leaks timer garbage-collection delay