gpt4 book ai didi

c# - 保证GC不会影响代码

转载 作者:行者123 更新时间:2023-11-30 17:58:47 28 4
gpt4 key购买 nike

我有这个扩展方法可以在给定时间间隔后禁用计时器。是否可以保证 GC 不会破坏 disableTimer 变量(在此方法中是局部变量)?或者是否有理由说明此代码将在一个小时后运行。

timer.DisableAfter(1.Hours()) :

public static void DisableAfter(this Timer timer, TimeSpan timeSpan)
{
var disableTimer = new Timer(timeSpan.TotalMilliseconds)
{
AutoReset = false,
};

disableTimer.Elapsed += (sender, e) =>
{
timer.Stop();
disableTimer.Stop();
};
disableTimer.Start();
}

最佳答案

没有保证它是否会被垃圾收集,但如果您不保留对计时器的引用,它肯定有资格被收集。

请参阅 Timer 的这个 MSDN 页面,转到第一个示例源代码块,阅读上面的文本,显然是源代码块本身......实际上都是关于 Timer 被垃圾收集的。

http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx

关于c# - 保证GC不会影响代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11928926/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com