Прочитав фразу "Текущий SynchronizationContext является свойством текущего потока" правильно", я немного запутался...
В коде приложения C# в VS2010, когда я набираю Thread.CurrentThread.
, я не нахожу в раскрывающемся списке вариантов, предоставленных Intellisense, никаких связанных с контекстом свойств для потока.
Я знаю, что текущий контекст синхронизации можно получить через "= SynchronizationContext.Current;
". Но это не совсем удачно с одновременно выполняемыми параллельно потоками, задачами и т.п.
Предположим, из консоли или приложения WPF (*) я создаю и запускаю несколько форм Windows в своих основных потоках пользовательского интерфейса, а также задачи TPL.
Я понимаю, что каждая форма winform должна иметь свой собственный WindowsFormaSynchronizationContext, WPF должен иметь собственный DispatcherSynchronizationContext (подклассы класса SynchronizationContext), задачи выполняются в ThreadPool с собственной синхронизацией контекст, задача LongRunning, вероятно, будет выполнена из пула потоков в собственный контекст синхронизации...
Итак, почему нельзя определить SynchronizationContext
из потоков? Все ответы на вопрос "Получить контекст синхронизации из заданного потока" кажутся единодушными в отрицании этой возможности...
И последнее, но не менее важное:
Является ли фраза "Текущий контекст синхронизации является свойством текущего потока" правильно" правильно?
Тогда как я могу получить значение этого свойства для разных конкретных экземпляров потока?
(*)
Недавно мне дали код приложения C# WPF, в основном использующий winforms.