Пытаюсь осмыслить обновление элементов управления пользовательского интерфейса из других потоков.
В настоящее время используется BeginInvoke, и, честно говоря, он работает нормально, но я все время слышу о том, как вы можете использовать SynchronizationContext, чтобы сделать то же самое.
Что предпочтительнее?
Кроме того, не является ли обновление пользовательского интерфейса из потока плохой практикой? Было бы лучше создать событие и позволить основной форме обработать его вместо этого, или есть другие предпочтительные способы сделать это?
Извините за несколько субъективный вопрос, но в мире потоковой передачи так много вариантов, и я Я пытаюсь понять их различия и то, где каждое из них применимо, а также передовой опыт написания читаемого и расширяемого кода на будущее.
Edit: Также теперь я вижу, что есть маршрут TaskScheduler.FromCurrentSynchronizationContext
.. Так много вариантов x_x