本文实例为大家分享了WPF定时刷新UI界面展示的具体代码,供大家参考,具体内容如下

代码:
using NHibernate.Criterion;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Visifire.Charts;
namespace SunCreate.CombatPlatform.Client
{
public partial class MainPage : UserControl
{
private System.Timers.Timer timerNotice = null;
public MainPage()
{
InitializeComponent();
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
#region 通知公告
if (timerNotice == null)
{
BindNotice();
timerNotice = new System.Timers.Timer();
timerNotice.Elapsed += new System.Timers.ElapsedEventHandler((o, eea) =>
{
BindNotice();
});
timerNotice.Interval = 60 * 1000;
timerNotice.Start();
}
#endregion
}
private void MainPage_SizeChanged(object sender, SizeChangedEventArgs e)
{
}
#region 绑定通知公告
private void BindNotice()
{
System.Threading.Tasks.Task.Factory.StartNew(() =>
{
try
{
int total = 0;
TES_NOTICE info = new TES_NOTICE();
IList<TES_NOTICE> list = new List<TES_NOTICE>();
list = HI.Get<INoticeService>().GetListPage(null, DateTime.MinValue, DateTime.MinValue, 1, 50, ref total);
Dispatcher.Invoke(new Action(() =>
{
noticeListView.ItemsSource = list;
}));
}
catch
{
}
});
}
#endregion
}
}
说明:在 System.Timers.Timer 的事件中使用 BackgroundWorker 是无效的,即如下代码不能正常刷新界面:
using NHibernate.Criterion;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Visifire.Charts;
namespace SunCreate.CombatPlatform.Client
{
public partial class MainPage : UserControl
{
private System.Timers.Timer timerNotice = null;
public MainPage()
{
InitializeComponent();
}
private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
#region 通知公告
if (timerNotice == null)
{
BindNotice();
timerNotice = new System.Timers.Timer();
timerNotice.Elapsed += new System.Timers.ElapsedEventHandler((o, eea) =>
{
BindNotice();
});
timerNotice.Interval = 60 * 1000;
timerNotice.Start();
}
#endregion
}
private void MainPage_SizeChanged(object sender, SizeChangedEventArgs e)
{
}
#region 绑定通知公告
private void BindNotice()
{
PT_USER_INFO user = new PT_USER_INFO();
IList<TES_COMBAT_TASK> taskList = new List<TES_COMBAT_TASK>();
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += (s, e) =>
{
user = HI.Get<Cache.ICacheService>().UserCache.GetCurrentUserInfo();
taskList = HI.Get<ITaskService>().GetCombatTaskByUserIDUnfinished(user.ID.ToString());
};
worker.RunWorkerCompleted += (s, e) =>
{
try
{
taskListView.ItemsSource = taskList;
}
catch { }
};
worker.RunWorkerAsync();
}
#endregion
}
}
也可以使用 DispatcherTimer 刷新界面,但耗时的操作不能放在DispatcherTimer的事件中执行,否则界面会卡,那么耗时的定时操作,比如查询数据库,需要再用一个 System.Timers.Timer,相对比较麻烦。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# WPF
# 定时刷新
# UI界面
# C#中WPF使用多线程调用窗体组件的方法
# C# WPF开源UI控件库MaterialDesign介绍
# WPF自定义MenuItem样式的实现方法
# 在WPF中使用多线程更新UI
# 绑定
# 放在
# 事件中
# 可以使用
# 再用
# 大家分享
# 不能正常
# 具体内容
# 大家多多
# partial
# public
# Client
# private
# UserControl
# MainPage
# Charts
# Visifire
# Shapes
# CombatPlatform
# SunCreate
相关文章:
,石家庄四十八中学官网?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
如何在IIS7中新建站点?详细步骤解析
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
北京的网站制作公司有哪些,哪个视频网站最好?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
沈阳制作网站公司排名,沈阳装饰协会官方网站?
全景视频制作网站有哪些,全景图怎么做成网页?
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
建站主机如何安装配置?新手必看操作指南
如何访问已购建站主机并解决登录问题?
表情包在线制作网站免费,表情包怎么弄?
股票网站制作软件,网上股票怎么开户?
家具网站制作软件,家具厂怎么跑业务?
制作销售网站教学视频,销售网站有哪些?
成都网站制作报价公司,成都工业用气开户费用?
定制建站策划方案_专业建站与网站建设方案一站式指南
音响网站制作视频教程,隆霸音响官方网站?
定制建站如何定义?其核心优势是什么?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
专业网站建设制作报价,网页设计制作要考什么证?
外贸公司网站制作哪家好,maersk船公司官网?
如何用搬瓦工VPS快速搭建个人网站?
安徽网站建设与外贸建站服务专业定制方案
网站制作公司,橙子建站是合法的吗?
潮流网站制作头像软件下载,适合母子的网名有哪些?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
定制建站是什么?如何实现个性化需求?
网站设计制作企业有哪些,抖音官网主页怎么设置?
javascript中的try catch异常捕获机制用法分析
黑客如何通过漏洞一步步攻陷网站服务器?
如何在万网自助建站平台快速创建网站?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
如何在万网开始建站?分步指南解析
建站之星Pro快速搭建教程:模板选择与功能配置指南
家庭服务器如何搭建个人网站?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
如何快速搭建高效可靠的建站解决方案?
北京专业网站制作设计师招聘,北京白云观官方网站?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
平台云上自助建站如何快速打造专业网站?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
定制建站流程步骤详解:一站式方案设计与开发指南
如何通过山东自助建站平台快速注册域名?
如何在宝塔面板创建新站点?
建站之家VIP精选网站模板与SEO优化教程整合指南
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
如何打造高效商业网站?建站目的决定转化率
*请认真填写需求信息,我们会在24小时内与您取得联系。