好的,我有这个timer
控件,当我启动程序时它运行良好,但是当我最大化或最小化表单时,计时器控件停止工作。什么都不更新?这是代码
public MainForm()
{
InitializeComponent();
var tm =
new System.Threading.Timer(state => statusDateTimeLabel.Text = DateTime.Now.ToLocalTime().ToString(CultureInfo.InvariantCulture), null, TimeSpan.FromMilliseconds(0),
TimeSpan.FromMilliseconds(1000));
}
有时,标签甚至不更新,有时它会更新。但主要问题是,当我最大化表单时,再次恢复它时,它会停止更新时间。谁能解释我做错了什么?
如果不清楚,我在状态栏中有这个标签控件,我想在该标签中显示当前日期时间。
认为这可能是因为这个线程可能正忙于做其他事情,我什至尝试了这个
public MainForm()
{
InitializeComponent();
ThreadPool.QueueUserWorkItem(delegate(object state)
{
new System.Threading.Timer(
stateObj =>
statusDateTimeLabel.Text =
DateTime.Now.ToLocalTime().ToString(CultureInfo.InvariantCulture),
null, TimeSpan.FromMilliseconds(0),
TimeSpan.FromMilliseconds(1000));
});
}
但是这又和上面一样,有时它会更新,有时它不会,让我感到困惑的是,当我最大化表单甚至调整它的大小时,它会停止更新?任何人都可以帮我找出问题所在吗?