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();
}
}
}