如何使用C#的方法 Dispatcher.Invoke =>
1个回答
展开全部
Dispatcher.Invok是WPF中特有的。使用方法如下
1)创建一个“WPF 引用程序”
2)在Window1.xaml中添加一个Label
3)在后台代码Window1.xaml.cs中
using System;
using System.Windows;
using System.Threading;
namespace WpfApplication3
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
// 启动一个后台线程
Thread t = new Thread(WorkThread);
t.IsBackground = true;
t.Start();
}
// 后台线程
void WorkThread()
{
while (true)
{
// 利用Dispacther.Invoke调用更新labelClock显示的内容
// 按WPF规定:labelClock是由主线程创建的。要想在后台线程
// 中刷新主线程创建的控件,必须通过Dispatcher.Invoke(...)
// 来实现!
this.Dispatcher.Invoke(
new Action(() => labelClock.Content
= DateTime.Now.ToString("HH:mm:ss")),
System.Windows.Threading.DispatcherPriority.Render);
// 后台线程停顿1秒
Thread.Sleep(1000);
}
}
}
}
4)运行结果
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询