21 / 20 / 3
Регистрация: 08.12.2012
Сообщений: 92
|
|
1 | |
В чём смысл DispatcherSynchronizationContext14.02.2020, 04:47. Показов 816. Ответов 1
Метки нет Все метки)
(
Добрый день,
задался вопросом, в каких случаях есть смысл от применения DispatcherSynchronizationContext в WPF. При написании асинхронных операций смысла его использовать нет, так как получится дедлок, в случаях когда нужно обновить UI из другого потока, код можно исполнить просто через Dispatcher.Invoke.
0
|
|
14.02.2020, 04:47 | |
Ответы с готовыми решениями:
1
В чем смысл? В чем смысл this в чем смысл задания |
![]() 1835 / 1343 / 427
Регистрация: 10.06.2011
Сообщений: 2,125
|
||||||
14.02.2020, 10:31 | 2 | |||||
Классы Dispatcher и DispatcherSynchronizationContext определены в сборке WindowsBase.dll. А WPF ссылается на WindowsBase.dll. Это значит, в WPF можно одинаково использовать как Dispatcher, так и DispatcherSynchronizationContext.
Но если мы заглянем в реализацию DispatcherSynchronizationContext, мы сможем увидеть, что внутри просто используется Dispatcher. DispatcherSynchronizationContext наследуется от SynchronizationContext, который определён в System.Threading.dll (для .NET Framework), mscorlib.dll (для .NET Core), netstandard.dll (для .NET Standart) Это значит, что если ViewModel лежит в отдельной сборке, мы можем передавать ему DispatcherSynchronizationContext как SynchronizationContext для вызова кода в основном потоке. Но более умный способ - это использовать Scheduler'ы из Rx, которые удобны для работы во ViewModel'ях. В Rx есть не только DispatcherScheduler, но и другие на все случаи жизни: ImmediateScheduler, CurrentThreadScheduler, DispatcherScheduler, EventLoopScheduler, Scheduler.NewThread, Scheduler.ThreadPool, Scheduler.TaskPool, TestScheduler Добавлено через 4 минуты Если выполняется код WPF приложения в основном потоке и нам встречается await task, то DispatcherSynchronizationContext неявно позволяет выполнить код, следующий после await task в основном потоке.
0
|
14.02.2020, 10:31 | |
Помогаю со студенческими работами здесь
2
В чем смысл полиморфизма
В чем смысл указателей?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |