|
Тема
|
Предложение за синхронизация
|
|
Автор |
ИвKo (особняк) |
Публикувано | 21.01.11 11:27 |
|
Налага ми се да защита определен клас, чрез синхронизация.
Класът има свойство Items, който връща определен обект от списък.
В определен момент, ми е необходимо, докато извършвам някакви вътрешни за класа действия, да забраня достъпа до Items, т.е. извикващия процес, да изчаква и докато не свършат тези вътрешни за класа действия, Items да не връща искания обект.
Някакви предложения?
| |
Тема
|
Re: Предложение за синхронизация
[re: ИвKo]
|
|
Автор | eмил (Нерегистриран) |
Публикувано | 21.01.11 15:27 |
|
CriticalSection?
| |
Тема
|
Re: Предложение за синхронизация
[re: ИвKo]
|
|
Автор | Mиpaka (Нерегистриран) |
Публикувано | 22.01.11 13:12 |
|
Правиш си member в класа от тип TCriticalSection (дефиниран е в SynchObjs). Принципа е че преди всеки достъп до Items трябва да извикаш fCriticalSection.Enter; , а след това fCriticalSection.Leave. Задължително е да се използва в try ... finally блок. Може би ще искаш да има public достъп до fCriticalSection, за да можеш да я "заключиш" когато правиш итерация през Items от външни структури.
--------
Кубични Софтуерни Решения
| |
Тема
|
Re: Предложение за синхронизация
[re: ИвKo]
|
|
Автор |
ИвKo (особняк) |
Публикувано | 23.01.11 12:06 |
|
Благодаря Ви.
Ще го мисля ...
Нещо ми липсват познанията относно синхронизацията.
| |
Тема
|
Re: Предложение за синхронизация
[re: ИвKo]
|
|
Автор |
psyromantic (somniferum) |
Публикувано | 26.01.11 21:52 |
|
...
Предимството да сравняваш предимствата е привилегия предимно на напредналите
| |
|
|
|
|