为什么我们需要调用control.invoke?

时间:2015-08-10 08:45:06

标签: c# multithreading user-interface

  1. 众所周知,线程共享相同的地址空间。
  2. 众所周知,我们无法直接从不同的线程更新UI(我们必须使用control.Invoke)。
  3. 所以我的问题是为什么这个UI对象(标签,文本框等)如此特别?为什么我们可以设置一些属性或为普通类调用一些方法,但是不能为UI类做这些?

1 个答案:

答案 0 :(得分:-1)

来自MSDN:

  

Windows Presentation Foundation(WPF)旨在节省开发人员   从线程的困难。因此,大多数WPF   开发人员不必编写使用多个接口的接口   线。因为多线程程序很复杂而且很难   调试时,应该避免使用单线程解决方案。

https://msdn.microsoft.com/en-us/library/vstudio/ms741870(v=vs.100).aspx

编辑:

作为对你评论的回答 -

  

“你的引言是否解释了什么??? !!”

我觉得很清楚:

你 -

  

我的问题是为什么这个UI对象(标签,文本框等)如此特别?为什么我们可以设置一些属性或为普通类调用一些方法,但是不能为UI类做这些?

MSDN -

  

由于多线程程序很复杂且难以调试,因此在存在单线程解决方案时应避免使用它们。

我删除了第二段,我没注意到我也复制了它。