更新计时器线程关闭

时间:2018-05-30 06:11:04

标签: c# multithreading timer

我每隔5分钟更新一个弹出窗口的标签,并将代码基于此article

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

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

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

1 个答案:

答案 0 :(得分:1)

很可能你的对象被垃圾收集了。永久存储您的计时器变量,可能是静态变量。