bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

WPF如何實(shí)現(xiàn)定時(shí)刷新UI界面

這篇文章將為大家詳細(xì)講解有關(guān)WPF如何實(shí)現(xiàn)定時(shí)刷新UI界面,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了牟定免費(fè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 刷新界面,但耗時(shí)的操作不能放在DispatcherTimer的事件中執(zhí)行,否則界面會(huì)卡,那么耗時(shí)的定時(shí)操作,比如查詢數(shù)據(jù)庫,需要再用一個(gè) System.Timers.Timer,相對(duì)比較麻煩。

關(guān)于WPF如何實(shí)現(xiàn)定時(shí)刷新UI界面就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文題目:WPF如何實(shí)現(xiàn)定時(shí)刷新UI界面
文章地址:http://vcdvsql.cn/article8/pdejop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司移動(dòng)網(wǎng)站建設(shè)網(wǎng)站策劃ChatGPT企業(yè)網(wǎng)站制作網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)