您的位置:首页 > 其它

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: