|
7 / 7 / 4
Регистрация: 25.03.2013
Сообщений: 117
|
|
.NET 4.x Потокобезопасно изменить коллекцию08.01.2014, 17:26. Показов 5054. Ответов 62
Метки нет (Все метки)
Коллекция прибиндина (binding) к listbox-у на вьюшке. Данные из коллекции (статус) обновляются из интернета, что может происходить долго и для того, чтобы интерфейс не завис - все делаю в асинхронном методе. Проблема в том, что во время обновления юзверь может удалить или добавить в коллекцию items.
Попробывал заблочить клавиши "добавить" и "удалить" пока обновляется список, но беда - долго обновляться может а у юзверей нету терпения, и возможность удалять и добавлять в коллекцию данные во время ее обновления надо. То как потокобезопасно изменять коллекцию? Добавлено через 2 часа 30 минут Есть предложения?) ТК я в тупике)
0
|
|
| 08.01.2014, 17:26 | |
|
Ответы с готовыми решениями:
62
|
| 09.01.2014, 14:34 | |||||||||||||
|
Я как раз писал, что не следует использовать try-catch, если не понимаешь алгоритма до конца, если брать ваш пример, его стоило было оформить так:
Приведу еще один пример из жизни. У разработчика периодически падало подключение к SQL Server (сетка плохая и т.п.), так вот он взял и обернул в try-catch (не суть как), но со временем SQL стал падать с таймаутом (при чем у заказчика). Пока не вычистили все try-catсh, так и не могли найти ошибки.
0
|
|||||||||||||
|
7 / 7 / 4
Регистрация: 25.03.2013
Сообщений: 117
|
||||||
| 09.01.2014, 15:49 [ТС] | ||||||
|
Psilon, могу удалять. и была трабла что foreach слетал(т.к. во время прохождения по коллекции она была изменена)
Сейчас сделал немного через п**у, но пока работает:
0
|
||||||
|
Master of Orion
|
|
| 09.01.2014, 16:48 | |
|
1
|
|
| 09.01.2014, 16:52 | |
|
Psilon, можно вопрос.
Вот вы дали ссылку (и многие другие дают), а есть ли опыт использования типов из этой коллекции. Я вот не представляю в какой задаче можно использовать хотя бы одну коллекцию. Обычно при синхронизации делаю либо сразу действие (в случае Stack и Queue) или просто слепок коллекции для дальнейшей работы.
0
|
|
|
Master of Orion
|
|
| 09.01.2014, 16:55 | |
|
Grishaco, ну ConcurrentStack и ConcurrentQueue я надеюсь вы понимаете когда использовать. Если нужен многопоточный аналог массива\List - то это Bag.
А вообще lock free очень интересная тема. Добавлено через 46 секунд http://habrahabr.ru/company/ifree/blog/195770/
0
|
|
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||
| 09.01.2014, 21:18 | |||
|
Grishaco, т.е try-catch все таки используете в проектах. Ну и славно, а то после фразы
0
|
|||
|
10 / 25 / 9
Регистрация: 08.12.2013
Сообщений: 115
|
|
| 09.01.2014, 21:23 | |
|
0
|
|
| 09.01.2014, 21:26 | ||||
|
0
|
||||
|
10 / 25 / 9
Регистрация: 08.12.2013
Сообщений: 115
|
||
| 09.01.2014, 21:29 | ||
|
System.Threading.Monitor System.Threading.ReaderWriterLockSlim System.Collections.Concurrent.Concurrent Queue
0
|
||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||
| 10.01.2014, 07:26 | ||
|
1) Вы считаете что отключать элементы интерфейса это моветон и таже студия которая на момент долгих операций (при коипиляции например) блокирует половину меню поступает в корне неверно? 2) Как биндинги помогут вернуть курсор в указатель из часов при выбросе искличения в функции?
0
|
||
|
burning1ife
|
|||||||||||||
| 10.01.2014, 10:13 | |||||||||||||
|
Если ни один не выбран, то кнопка неактивна. А также в программах с большим функционалом иногда в панели очень много кнопок, и в зависимости от контекста они могут быть неактивны. Добавлено через 1 минуту Добавлено через 1 минуту
0
|
|||||||||||||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
|||||||
| 10.01.2014, 10:51 | |||||||
0
|
|||||||
|
burning1ife
|
|
| 10.01.2014, 11:10 | |
|
вы сделали ли:
throw new Exception("Некорретное значение х"); как без try-finally? и зачем без try-finally? конечно лучше исключить их использование, когда можно провести валидацию, а не отдавать все на случай появления исключения, но в случаях, например, работы с удаленными сервисами, когда может он может не ответить тут никак. да и вообще логику работы с ними в отдельный модуль, который уже обработает и вернет осмысленный ответ.
0
|
|
| 10.01.2014, 11:17 | |||||
|
0
|
|||||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||||||
| 10.01.2014, 11:50 | ||||||
|
Grishaco,
0
|
||||||
| 10.01.2014, 11:58 | |||||||
|
1. Если исключение кинул программист, будет делать корректную валидацию и убирать throw. 2. Если исключение возникло в процессе тестирования (не валидные данные), опять же будет исправлять программист, в данном случае у него будет вся информация об исключении. У меня такое ощущение, что мы либо не понимаем друг друга, либо говорим об одном и том же, только по разному. Давайте так, мы работает в одной команде, я написал класс
0
|
|||||||
|
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
|
||
| 10.01.2014, 11:58 | ||
|
Мне интересен способ реанимации интерфейса без них.
0
|
||
| 10.01.2014, 12:03 | ||
|
Или вы не представляете себе код без try-catch? Добавлено через 2 минуты P.S. Я привел пример, возможно не удачный. Давайте теперь вы приведете пример где никак не обойтись без try-finaly. Я во всяком случае такого не встречал.
0
|
||
| 10.01.2014, 12:03 | |
|
Отобразить коллекцию Реализовать коллекцию Отсортировать коллекцию
Объект в коллекцию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|