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