我有依赖SynchronizationContext
(由应用程序提供)的库代码来序列化一些操作并在同一个线程上执行它们。此库代码与将在其中运行的应用程序无关。
但是,只有一些实现SynchronizationContext
会这样做,比如WindowsFormSynchronizationContext
,DispatcherSynchronizationContext
可能还有其他我不知道的实现。
其他实现,如基础SynchronizationContext
本身,AspNetSynchronizationContext
是自由线程的;他们不会对操作进行序列化。
如果我的代码得到 a SynchronizationContext
,它如何区分这两种情况?如果同步上下文不合适,我希望它快速失败并出现明显错误。