WPF快速指导12: 线程处理模型

本文摘要:

1:理解与UI相关的多线程操作;
2:多个窗口多个线程
3:WPF中的多线程异常

1:理解与UI相关的多线程操作

    首先来说说传统Winform。我们知道传统Winform新起工作线程,在工作线程中不能对界面元素进行操作。如下面的代码,运行会报错“线程间操作无效: 从不是创建控件“label1”的线程访问它。”:

Thread t = new Thread(delegate()
{
label1.Text
= "temp";
});
t.Start();

     要使上面的代码能成功运行,我们需要使用控件的InvokeBeginInvoke和方法。这两个方法的意思是说,让赋值这个行为交给UI线程去处理。代码如下:

Thread t = new Thread(delegate()
{
label1.Invoke(
new MethodInvoker(delegate()
{
label1.Text
= "temp";
}));
});
t.Start();

  而WPF的控件,我们找不到InvokeBeginInvoke这两个方法了。因为WPF的UI线程都交给一个叫做调度器的类了。

相关文章:

  • 2021-06-13
  • 2021-08-30
  • 2021-11-12
  • 2022-01-27
  • 2021-05-19
  • 2022-12-23
猜你喜欢
  • 2021-08-22
  • 2021-09-08
  • 2021-09-30
  • 2021-08-19
  • 2021-12-04
相关资源
相似解决方案