0

我正在学习多线程(以及相关的东西,如并发、TPL - 在 .NET、Windows 中),并希望你对这个问题的回答能大大减少我的疑虑。

为什么 WPF UI 需要通过 Dispatcher 输出(来自多个线程)而控制台不需要?
我希望这个解释会比MSDN 文档中过度使用和定义不足的短语更详细一点,即Console 类是线程安全的(或者更好地避免使用模棱两可的术语)。

更新:
感谢 Justin Pihony 的评论,子问题:
为什么没有 Dispatcher 对象就无法从 WPF UI 读取,而 Windows 窗体允许在没有 Invoke/BeginInvoke 的情况下读取和写入?
为什么(或如何)阅读会损害 WPF UI 的线程安全?

我试图为我消除.NET Framework 4 中的并行编程中的短语:入门

“我对控制台应用程序没有问题,因为 Console 类是线程安全的。但在 WPF 中,UI 组件只能由专用的 UI 线程安全访问”

阅读答案的建议主题:

4

1 回答 1

0

WPF/WinForm 创建和使用窗口,对单线程有亲和力。

控制台不使用窗口,它只是输出/回复字符串。

它是“窗口开发的设计”。

于 2013-04-03T04:17:16.867 回答