
08.06.2009, 00:08
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
Вообще такие вещи делаются через критические секции типа
Код:
var
CS:TRTLCriticalSection; // глобальная переменная
.......
при старте проги делаешь:
InitializeCriticalSection(CS);
.....
в потоках делаешь:
EnterCriticalSection(CS);
тут идут нужные действия.
LeaveCriticalSection(CS);
после выполнения EnterCriticalSection
система приостанавливает все потоки программы и выполняет код который идет далее.
Затем после LeaveCriticalSection система опять разрешает работу других потоков.
т.е. какбы синхронизация но на уровне ядра и просчитана более лучше.
|
|
|