Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Потоки. Крит. секции. [D5, Win95/98]


mart ©   (2002-01-06 13:08:00) 

Всем привет! В программе создается поток и некоторый код
защищен критической секцией (изменение некой переменной).
Та-же переменная изменяется в основном потоке и тоже защищена крит. секцией. Вопрос: Молжно ли использовать крит. секцию в основном потоке и, если нет, то как правильно сделать?


Макс Черных   (2002-01-06 14:15:00) [1]

>Молжно ли использовать крит. секцию в основном потоке
Можно. Надо только помнить, что:
Critical Section должна существовать при обращении
к ней из любого потока. Поэтому ее обычно объявляют как
глобальную переменную в основном потоке, а создают
и уничтожают в initialization и finalization основного потока.
При попытке входа в Critical Section, если она занята, то
основной поток встанет, соответственно интерфейс программы
замерзнет. Следовательно, необходимо чтобы при захвате
Critical Section другим потоком время захвата было небольшим,
а так же чтобы выход из Critical Section гарантированновыполнялся даже при возникновении exception.


Наверх

Титульная страница Поиск, карта сайта Написать письмо