最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年07月03日 17:10:13   作者:秋荷雨翔  
這篇文章主要為大家詳細介紹了WPF實現(xiàn)定時刷新UI界面功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • ASP.NET書籍信息錄入實現(xiàn)代碼

    ASP.NET書籍信息錄入實現(xiàn)代碼

    這篇文章主要介紹了ASP.NET書籍信息錄入實現(xiàn)代碼,特別適合網(wǎng)上書城項目中使用,需要的朋友可以參考下
    2015-10-10
  • .Net使用RabbitMQ即時發(fā)消息Demo

    .Net使用RabbitMQ即時發(fā)消息Demo

    RabbitMQ是一個在AMQP基礎(chǔ)上完整的,可復(fù)用的企業(yè)消息系統(tǒng),下面這篇文章主要給大家介紹了關(guān)于.Net使用RabbitMQ即時發(fā)消息的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-07-07
  • asp.net使用母版頁中使用ajax腳本取數(shù)據(jù)

    asp.net使用母版頁中使用ajax腳本取數(shù)據(jù)

    因母版頁繼承自UserControl,我們無法像正常頁面那樣使用Jquey或Ajax的PageMethods等無刷新方法取數(shù)據(jù)。不過可以使用ajax提供的Sys.Net.WebRequest來解決這一問題。
    2010-09-09
  • .NET內(nèi)存泄漏分析Windbg項目實例

    .NET內(nèi)存泄漏分析Windbg項目實例

    這篇文章介紹了.NET內(nèi)存泄漏分析Windbg項目實例,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • .NET中的狀態(tài)機庫Stateless的操作流程

    .NET中的狀態(tài)機庫Stateless的操作流程

    本文給大家介紹了.NET中的狀態(tài)機庫Stateless, 使用它我們可以很容易的定義出自己業(yè)務(wù)需要的狀態(tài)機,或者基于狀態(tài)機的工作流,本文大部分的內(nèi)容都來自官方Github,有興趣的同學(xué)可以深入研究一下
    2021-12-12
  • 增加asp.net應(yīng)用程序性能的20種方法(簡單有效)

    增加asp.net應(yīng)用程序性能的20種方法(簡單有效)

    增加asp.net應(yīng)用程序性能的20種方法小結(jié),需要的朋友可以參考下,對于服務(wù)器也需要一些設(shè)置。
    2010-01-01
  • ASP.NET中后臺注冊js腳本使用的方法對比

    ASP.NET中后臺注冊js腳本使用的方法對比

    接下來為大家介紹下使用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:區(qū)別
    2013-04-04
  • WPF中自定義GridLengthAnimation

    WPF中自定義GridLengthAnimation

    這篇文章主要為大家詳細介紹了WPF中自定義GridLengthAnimation的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • asp.net 動態(tài)輸出透明gif圖片

    asp.net 動態(tài)輸出透明gif圖片

    要使用asp.net動態(tài)輸出透明gif圖片,也就是用Response.ContentType = "image/GIF"。
    2009-12-12
  • .NET Core 反射底層原理解析

    .NET Core 反射底層原理解析

    本文介紹了.NET中的反射機制,包括前期綁定(EarlyBinding)和后期綁定(LateBinding)的概念,反射是一種強大的工具,但在性能要求較高的場景中應(yīng)謹慎使用,感興趣的朋友跟隨小編一起看看吧
    2024-11-11

最新評論

阳朔县| 漠河县| 海安县| 奉贤区| 南充市| 呼和浩特市| 新干县| 清水河县| 永春县| 武强县| 莱芜市| 乐至县| 聊城市| 博乐市| 衡山县| 和静县| 德惠市| 德保县| 佛山市| 团风县| 淮南市| 唐海县| 佳木斯市| 略阳县| 贵州省| 论坛| 赤水市| 新营市| 容城县| 潞西市| 淮阳县| 宣汉县| 施秉县| 高清| 安顺市| 会东县| 蓬莱市| 富锦市| 花莲县| 富民县| 潞城市|