我正在学习多线程(以及相关的东西,如并发、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 线程安全访问”