大家在WPF窗体使用计时器(Timer)的时候可能会出现一个这样的错误“System.InvalidOperationException:“调用线程必须为 STA,因为许多 UI 组件都需要。””,这个错误一般都是线程的问题,我们可以使用另一种计时器(DispatcherTimer)来避免发生这种问题。文章来源:https://www.toymoban.com/news/detail-763425.html
// 创建一个定时器,每隔5秒执行一次Task方法
DispatcherTimer timer;
/// <summary>
/// DispatcherTimer 计时器
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DispatcherTimerFuction()
{
timer= new DispatcherTimer();
timer.Interval = TimeSpan.FromHours(2);//定时2个小时后执行的事情
timer.Tick += new EventHandler(PopWindow);
timer.Start();
}
/// <summary>
/// 执行的事件(这里写隔多少事件后要执行的事情)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PopWindow(object sender, EventArgs e)
{
MessageBox.Show("2秒后要执行的事情", "提示");
timer.Stop();//如果想要一直每隔一段事件执行某一件事情,可以注释掉(timer.Stop();)
}
以上就是解决Timer计时器出现“System.InvalidOperationException:“调用线程必须为 STA,因为许多 UI 组件都需要。””问题的方法,大家可以借鉴一下。文章来源地址https://www.toymoban.com/news/detail-763425.html
到了这里,关于C# 计时器(Timer )WPF窗体出现“System.InvalidOperationException:“调用线程必须为 STA,因为许多 UI 组件都需要。””的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!