powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Thread Collection
10 сообщений из 10, страница 1 из 1
Thread Collection
    #38004206
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажу сразу, у меня сторонняя коллекция, поэтому сделать ее потокобезопасной не получится((. Подобные примеры я находил для ObserveableCollection/

Суть такая - есть контрол. во View. Есть коллекция во ViewModel. Через Binding цепляю эту коллекцию к контролу.
Далее запускаю метод, который через Dispatcher моего контрола запускает новый поток, в котором идет инициализация объектов коллекции.

Так вот - если по такой логике работать - то система ругается - типа не нельзя работать с объектами из другого потока. Ругается именно на коллекцию.
Что типа пишет - коллекция создана в другом потоке и т.д.
Я пробовал передавать в новый опток коллекию из потока UI (созданной в потоке UI)? пробовал создавать коллекцию в новом потоке и возвращать ее.
Везде одна и тай же байда.
Со значимыми типа все работает - проблема именно с коллекцией - так как из другого потока возвращается ссылка на коллекцию..
Может кто сталкивался? Свойства у Binding IsAsync мне ничем не помогло
...
Рейтинг: 0 / 0
Thread Collection
    #38004243
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unknownfromrus,

В догонку. Может кто уже делал - и есть готовый механизм.
Не секрет, что если в отдельном потоке изменяются поля класса или коллекции, то PropertyChanged в UI потоке не срабатывает. Как можно это решить? Пока плотно этим не занимался - но думаю с PropertyChanged из другого потока придется сгеодня - завтра плотно столкнуться
...
Рейтинг: 0 / 0
Thread Collection
    #38006858
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллега, поток UI трогать нельзя, это святое. Такие задачи решаются с помощью делегата. Обратись к документации, там все расписано, ну и архитектуру WPF стоило бы тоже рассмотреть. Удачи.
...
Рейтинг: 0 / 0
Thread Collection
    #38007729
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WPF,

Ну вообще я как правило использую не делегаты а лямба-выражения.
По поводу архитектуры WPF - ну я бы не сказал что плохо ее знаю)). Я уже описывал - что многопоточность в WPF я использовал - но только тогда - когда эелементу из основного потока через диспатчер и присваивал какое-то значение.
Я не использовал многопоточность в WPF через Binding.
Поэтому если есть примеры - лучше дать пример - а не ссылать на абстрактные предложения - типа почитайте МСДН
...
Рейтинг: 0 / 0
Thread Collection
    #38007954
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прости, немного резко ответил, поддатый был. Далее, почему архитектура, потому что в самой основе архитектуры заложен поток, который запускает другие потоки. Обрати на это внимание, сделано специально, чтобы облегчить работу с потоками.
Лямба-выражения и есть обертка для делегата. В Binding конечно не надо использовать другой поток, уже поздно, делай это раньше, при инициализации ViewModel например.
Есть и другие решения, например сделать коллекцию статик или, если это медленный процесс, использовать Task. Не совсем понятны условия, напиши подробней или приведи часть кода, где это делаешь.
...
Рейтинг: 0 / 0
Thread Collection
    #38007965
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример для Northwind
...
Рейтинг: 0 / 0
Thread Collection
    #38007975
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напиши понятно или нет. Кстати коллекцию еще можно клонировать
...
Рейтинг: 0 / 0
Thread Collection
    #38007993
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skole,

Спасибо за пример.
Очень страно, можно сказать подобным образом делал - но почему-то система ругалась - что не может читать данные из коллекции созданной в другом потоке. Надо будет разобраться.
...
Рейтинг: 0 / 0
Thread Collection
    #38007995
unknownfromrus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WPF,

С клонированием все пашет - я не стал тогда писать об этом.
Просто я такие варианты беру когда уже не могу найти нормальное решение.
...
Рейтинг: 0 / 0
Thread Collection
    #38008012
WPF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка твоя в том, что пытался запустить в отдельном потоке само свойство, а надо было загрузить данные в другую коллекцию и поднять ивент, что свойство изменилось. Все остальное диспетчер сделал бы за тебя.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Thread Collection
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]