麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

WPF實現定時刷新UI界面功能

2024-07-10 13:32:31
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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的事件中執(zhí)行,否則界面會卡,那么耗時的定時操作,比如查詢數據庫,需要再用一個 System.Timers.Timer,相對比較麻煩。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 中午日产幕无线码1区 | 自拍偷拍亚洲图片 | 久久91久久久久麻豆精品 | 久久狂草 | 麻豆小视频在线观看 | 激情综合婷婷久久 | 国产精品男女 | 99国内精品视频 | 一级黄色淫片 | 日韩毛片免费观看 | 7777久久香蕉成人影院 | 成人在线观看一区二区三区 | 龙床上的呻吟高h | 国产午夜三级一区二区三桃花影视 | 神马福利网 | 色综合视频网 | 九九热精品在线视频 | 91色琪琪电影亚洲精品久久 | 久久精品免费网站 | 色网站在线免费观看 | 欧美日韩在线免费观看 | 国产精品久久久免费看 | 国产伦精品一区二区三区 | 激情视频导航 | 一区二区免费看 | 激情亚洲网| 在线观看91精品 | 777sesese| 日日摸夜夜骑 | 成人午夜高清 | 欧美日韩在线播放 | 欧美精品日日鲁夜夜添 | 日本中文字幕电影在线观看 | 久久千人斩 | 国产精品久久久久久久久久久久午夜 | 国产免费成人在线 | 欧美四级在线观看 | 91精品国产乱码久久久久久久久 | 精品免费在线视频 | 欧美黄色一级片在线观看 | 亚洲日本高清 |