C# WPF 多线程更新程序界面

C#  WPF 多线程更新程序界面

参考:http://www.cnblogs.com/yangyancheng/archive/2011/04/03/2004404.html

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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 System.Threading;
using System.Windows.Threading;

namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private int counter = 0;
Thread thread;
public MainWindow()
{
InitializeComponent();
String strText = "Timer Tick:" + counter.ToString();
textBox.Text = strText;
thread = new Thread(new ThreadStart(printTime));
thread.Start();
}


void printTime()
{
while (true)
{
///线程优先级,最长超时时间,方法委托(无参方法)
textBox.Dispatcher.Invoke(DispatcherPriority.Normal, TimeSpan.FromSeconds(1), new Action(UpdateTime));
Thread.Sleep(1000);
}
}

private void UpdateTime()
{
this.textBox.Text = DateTime.Now.ToLocalTime().ToString("yyyy年MM月dd日 hh:mm:ss");
}

private void Window_Closed(object sender, EventArgs e)
{
thread.Abort();
Application.Current.Shutdown();
}
}
}

posted @ 2015-11-16 21:35  RuiW  阅读(1409)  评论(0编辑  收藏  举报