首页 > 解决方案 > 更新计时器线程关闭

问题描述

我每 5 分钟更新一次弹出窗口的标签,并基于本文的代码。

public MyPopup()
{
   var startTimeSpan = TimeSpan.Zero;
   var periodTimeSpan = TimeSpan.FromMinutes(5);

   var timer = new System.Threading.Timer((e) =>
   {
     UpdatePopupUI();
   }, null, startTimeSpan, periodTimeSpan);
}

一切正常,但是当我回到主窗口并打开新窗口(不是弹出窗口的新实例)时,似乎线程被删除了。我在输入窗口中没有错误。关于什么可以杀死线程的任何想法?有没有办法解决这个问题?

标签: c#multithreadingtimer

解决方案


很可能您的对象会被垃圾收集。永久存储您的计时器变量,也许在静态变量中。


推荐阅读