WPF简单的跨线程控件实现
2012-01-11 17:40
369 查看
public delegate void SetTextCallback(Label label, string text);
/// /// Interaction logic for Window1.xaml
///
public partial class Window1 : Window
{ Thread tr = null; public Window1(
) {
InitializeComponent();
tr = new Thread(new ThreadStart(LoopDoThread)); tr.Start(); }
public void LoopDoThread()
{
int i=0;
while(true)
{
SetThreadText(lb , i.ToString()); i++; }
}
/// /// 跨线程调用控件
/// /// Label控件
/// 准备赋的值
private void SetThreadText(Label label, string text)
{ if (System.Threading.Thread.CurrentThread != label.Dispatcher.Thread)
{ SetTextCallback method = new SetTextCallback(this.SetThreadText);
base.Invoke(method, new object[] { label, text });
label.Dispatcher.Invoke(method, new object[] { label, text });
}
else
{
label.Content = text;
}
}
/// /// Interaction logic for Window1.xaml
///
public partial class Window1 : Window
{ Thread tr = null; public Window1(
) {
InitializeComponent();
tr = new Thread(new ThreadStart(LoopDoThread)); tr.Start(); }
public void LoopDoThread()
{
int i=0;
while(true)
{
SetThreadText(lb , i.ToString()); i++; }
}
/// /// 跨线程调用控件
/// /// Label控件
/// 准备赋的值
private void SetThreadText(Label label, string text)
{ if (System.Threading.Thread.CurrentThread != label.Dispatcher.Thread)
{ SetTextCallback method = new SetTextCallback(this.SetThreadText);
base.Invoke(method, new object[] { label, text });
label.Dispatcher.Invoke(method, new object[] { label, text });
}
else
{
label.Content = text;
}
}
相关文章推荐
- [WPF] Felix 的线程学习笔记(二)——从WPF入手,实现简单的多线程
- WPF学习——制作一个简单的录入界面(2):用C#编程实现所有控件的功能
- WPF - 学习笔记 简单的跨线程访问控件方法
- 超简单,三步就能在WPF里面多线程访问UI线程、主线程的控件
- 简单实现WPF界面控件换肤效果
- WPF Adorner+附加属性 实现控件友好提示
- 使用 xlue 实现简单 listbox 控件
- C# 用户控件调用主窗体的方法(简单的线程用法)
- 用简单的C语言实现多任务轮流切换(模拟操作系统线程机制)
- 农国苏:WPF控件简单总结(完善中……)
- 如何在Android实现桌面清理内存简单Widget小控件
- WPF DataGrid自定义分页控件_实现下拉刷新数据
- 一种简单分页控件的实现
- [NGUI]基于UIDragDropItem脚本实现简单的控件拖拽
- .net分页控件简单实现
- 安卓中针对单个控件的简单动画实现
- 实现VSTO操作WORD之二 --------实现简单控件编程例子
- iOS多线程编程中,子线程如何访问和操作主线程UI中的视图控件(下载操作用子线程实现)
- WPF-002 下拉列表的简单实现
- 简单的实现控件的移动