Показать сообщение отдельно

  #3753  
Старый 08.06.2009, 00:08
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

Вообще такие вещи делаются через критические секции типа
Код:
var
 CS:TRTLCriticalSection; // глобальная переменная
.......
при старте проги делаешь:
 InitializeCriticalSection(CS);
.....
в потоках делаешь:
 EnterCriticalSection(CS);
 тут идут нужные действия.
 LeaveCriticalSection(CS);
после выполнения EnterCriticalSection
система приостанавливает все потоки программы и выполняет код который идет далее.
Затем после LeaveCriticalSection система опять разрешает работу других потоков.
т.е. какбы синхронизация но на уровне ядра и просчитана более лучше.
 
Ответить с цитированием