![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Gershkovich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 8.2.2006 Репутация: 0 Всего: 2 |
Всем привет!
Можно ли добавлять \ удалять строки в TStringList из нескольких потоков ? У меня в приложэнии 5 потоков должны добавлять строки и 2 потока удалять. Т.е. вопрос такой : Синхронезирован ли TStringList внутре ? Или придеццо сихронезировать потоки своими средствами (ну там критичиские секцыи и проч....)? Зоранее спасибо. |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 13 Всего: 158 |
||||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Учитывая что он оперирует указателями то это будет вообще непросто. Я бы посоветовал помимо синхронизации еще передавать строки по значению, а не как обычно по ссылке. Причем синхронизировать нужно будет операции целиком.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
сделать потокобезопасную обертку над TStringList по образу TInterfaceList
-------------------- There are always someone smarter than you... |
|||
|
||||
Gershkovich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 8.2.2006 Репутация: 0 Всего: 2 |
Alexeis, а в чом будут заключатся проблемы ?
мне кажится што все должно быть примерно так: EnterCriticalSection StringList.Add("Hello World!); LeaveCriticalSection |
|||
|
||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 13 Всего: 158 |
в случае 'Hello, world' все будет нормально, а вот если ты будешь делать StringList.Add(s), то в список добавится указатель на этот самый s... поэтому лучше сделать какое-нибудь зло вроде UniqueString(s) перед добавлением в лист.
все остальные операции с этим StringList'ом, кстати, надо на ту же крит.секцию блокировать. |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
а имхо и так будет работать ;) -------------------- There are always someone smarter than you... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |