国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

WPF實現(xiàn)定時刷新UI界面功能

2024-07-10 13:32:31
字體:
供稿:網(wǎng)友

本文實例為大家分享了WPF定時刷新UI界面展示的具體代碼,供大家參考,具體內(nèi)容如下

代碼:

 

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í)行,否則界面會卡,那么耗時的定時操作,比如查詢數(shù)據(jù)庫,需要再用一個 System.Timers.Timer,相對比較麻煩。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到ASP.NET教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成武县| 龙泉市| 连平县| 黄梅县| 贺兰县| 民乐县| 清水县| 嵊州市| 东方市| 台中市| 巢湖市| 隆回县| 富裕县| 和林格尔县| 资兴市| 施甸县| 樟树市| 通榆县| 宁陕县| 黔江区| 仪征市| 黄大仙区| 咸阳市| 高邑县| 澄城县| 长治市| 类乌齐县| 湘乡市| 大关县| 叙永县| 荣昌县| 徐闻县| 浦东新区| 武夷山市| 城口县| 图木舒克市| 天津市| 榆林市| 吉林省| 吉安市| 安丘市|