C# SynchronizationContext是否仅用于WPF、Win表单?

C# SynchronizationContext是否仅用于WPF、Win表单?,c#,synchronizationcontext,C#,Synchronizationcontext,我读到的每一篇关于SynchronizationContext的文章都谈到了如何处理表单控件。 这是SynchronizationContext的唯一用途吗 我还要问一个基本问题:如果UI线程使用它,为什么我不能在使用前锁定每个控件?为什么我需要所有这些“SynchronizationContext”来与控件通信?我的意思是,这不是一个更好的沟通控制的方式吗?(我知道这行不通) 文章: ..同步上下文可用于在任何其他线程的上下文中执行工作 不过这里有一个主要的警告:另一个线程需要为此做好准备

我读到的每一篇关于SynchronizationContext的文章都谈到了如何处理表单控件。 这是SynchronizationContext的唯一用途吗

我还要问一个基本问题:如果UI线程使用它,为什么我不能在使用前锁定每个控件?为什么我需要所有这些“SynchronizationContext”来与控件通信?我的意思是,这不是一个更好的沟通控制的方式吗?(我知道这行不通)

文章:


..

同步上下文可用于在任何其他线程的上下文中执行工作

不过这里有一个主要的警告:另一个线程需要为此做好准备,例如。G通过使用消息泵,就像WinForm和WPF中的UI线程一样。此外,这些UI线程始终具有SynchronizationContext,而其他线程类型通常不具有SynchronizationContext

至于锁定作为替代方案,这需要在Microsoft类内部采用完全不同的设计。这是可能的,但也可能导致线程在等待时阻塞很长时间。我认为这将为滥用提供很多可能性


非常有用,例如。

SynchronizationContext可用于在任何其他线程的上下文中执行工作

不过这里有一个主要的警告:另一个线程需要为此做好准备,例如。G通过使用消息泵,就像WinForm和WPF中的UI线程一样。此外,这些UI线程始终具有SynchronizationContext,而其他线程类型通常不具有SynchronizationContext

至于锁定作为替代方案,这需要在Microsoft类内部采用完全不同的设计。这是可能的,但也可能导致线程在等待时阻塞很长时间。我认为这将为滥用提供很多可能性


非常有帮助,比如。

我看不到任何与锁定和同步上下文的关系。
这是什么意思
如果UI线程使用它,为什么我不能在使用前锁定每个控件?为什么我需要所有这些“SynchronizationContext”
?如果SynchronizationContext为我提供了一种线程安全的方式来与控件通信,我可以使用一个简单的锁。我说的对吗?不,锁是基于
Monitor
类实现的,它确保一次只有一个线程可以执行代码的关键部分。而
SynchronizationContext
用于在另一个线程或同一线程的上下文中执行某些代码。通常我们使用
SynchronizationContext
在另一个线程(通常是UI线程)中执行代码。这清楚吗?几乎,SynchronizationContext还有什么其他用途?为什么我要停止运行aother线程告诉他要运行的aother代码的线程?你没有回答我的要求,(我知道它不是那样工作的…)你能告诉我我知道它不是那样工作的吗?我没有看到锁和同步上下文的任何关系,你说的
这是什么意思
如果UI线程使用它,为什么我不能在使用前锁定每个控件?为什么我需要所有这些“SynchronizationContext”
?如果SynchronizationContext为我提供了一种线程安全的方式来与控件通信,我可以使用一个简单的锁。我说的对吗?不,锁是基于
Monitor
类实现的,它确保一次只有一个线程可以执行代码的关键部分。而
SynchronizationContext
用于在另一个线程或同一线程的上下文中执行某些代码。通常我们使用
SynchronizationContext
在另一个线程(通常是UI线程)中执行代码。这清楚吗?几乎,SynchronizationContext还有什么其他用途?为什么我要停止运行aother线程告诉他要运行的aother代码的线程?你没有回答我的要求,(我知道它不是那样工作的。)你能证明我知道它不是那样工作的吗。?