SynchronizationContext是否仅用于WPF、Win表单
本文关键字:Win 表单 WPF 用于 是否 SynchronizationContext | 更新日期: 2023-09-27 18:28:04
我读到的每一篇关于SynchronizationContext的文章都谈到了如何处理表单的控件。这是SynchronizationContext的唯一目的吗?
我还必须问一个基本的问题:如果UI线程使用了每个控件,为什么我不能在使用之前先锁定它呢?为什么我需要所有这些"SynchronizationContext"来与控件通信?我的意思是,这不是一种更好的沟通控制的方式吗?(我知道这行不通)。
文章:
http://blogs.msdn.com/b/csharpfaq/archive/2010/06/18/parallel-programming-task-schedulers-and-synchronization-context.aspx
http://reedcopsey.com/2010/03/18/parallelism-in-net-part-15-making-tasks-run-the-taskscheduler/
不过,这里有一个主要的警告:其他线程需要为此做好准备,例如使用消息泵,就像WinForm和WPF中的UI线程一样。此外,这些UI线程总是有SynchronizationContext,而其他线程类型通常没有。
至于锁定作为一种替代方案,则需要在Microsoft类中采用完全不同的设计。这可能是可能的,但也可能导致线程在等待时长时间阻塞。我认为这会为滥用打开很多可能性。
这篇关于代码项目的文章很有帮助,比如https://stackoverflow.com/a/4107653/586754.