全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

WPF实现定时刷新UI界面功能

本文实例为大家分享了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小时内与您取得联系。