хочу распараллелить и выполнять асинхронно, проблема в том, что во всех этих задачах замешаны элементы UI, а к ним, как мы знаем нужно обращаться только из главного потока, так вопрос, возможно ли вообще распараллелить такие задачи?
Более правильный вопрос, есть ли метод распараллеливания таких задач?)
дайте больше контекста пожалуйста пока не понятно , что бы нормально ответить что за задачи, что надо постоянно в ui ходить
вот такого вот типа задачи, по сути графическим элементам присваиваю данные с сервера
кажется тут все еще проще заводите коллекцию тасков дальше через Task.WhenAny() достаете закончивший, обновляете ui удаляете его из коллекции и так до опустения коллекции
Спасибо большое)
можно использовать , то что сказал N 2 использовать Dispatcher.Invoke() но это не самый красивый способ и если можно от него уйти, в целом стоит уйти
просто при такой реализации, смысла от распараллеливания абсолютно не будет
Мне вот интересно, если бы это делалось по mvvm , была бы эта проблема актуальна?
Да. У тебя биндинги все отрабатывают на ui потоке
Ну вот конкретно в этом случае, какая-то архитектура была бы тут полезнее. В том смысле, что ты отдельно получаешь данные. А отдельно их визуализируешь. И вот то место, где ты получаешь данные, вот его можно было сделать асинхронным. А в данном случае у тебя какая-то дикая каша
Обсуждают сегодня