![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Потоки. Крит. секции. [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.