Вниз
Скачать: CL | DM;

Как правильно блокировать/разблокировать поток?   Найти похожие ветки 

← →
DevilDevil ©   (2007-11-08 15:01) [40]

> Slym ©   (08.11.07 06:16) [38]
спасибо, что-то ступил, даже хелп не помотрел.

> Сергей М. ©   (08.11.07 10:25) [39]
тоже спасибо.


← →
Loginov Dmitry ©   (2007-11-08 20:49) [41]

> и ещё вопрос: процедуры Lock() и UnLock() могут вызываться
> из обоих потоков; процедуры надо защищать критической секцией
> ?


Тело процедуры ты можещь защитить критической секцией (так наверно и нужно делать). Но в самих процедурах для блокировки / разблакировки потоков использовать мьютексы и критические секции нельзя, т.к. в этом случае пара Lock() / UnLock() всегда должна вызываться в одном и том же потоке. Так что здесь следует использовать Event.


← →
Leonid Troyanovsky ©   (2007-11-08 21:32) [42]


> Loginov Dmitry ©   (08.11.07 20:49) [41]

> Тело процедуры ты можещь защитить критической секцией (так
> наверно и нужно делать). Но в самих процедурах для блокировки
> / разблакировки потоков использовать мьютексы и критические
> секции нельзя, т.к. в этом случае пара Lock() / UnLock()
> всегда должна вызываться в одном и том же потоке. Так что
> здесь следует использовать Event.

А хватит Event"а, если тело большое?

--
Regards, LVT.


← →
DevilDevil   (2007-11-08 23:12) [43]

недопонял... вот так правильно или нет :

procedure TMusicPlayerThread.Lock();
begin
 try
    FPlayer.BeginCriticalSection();

    Event.ResetEvent();
 finally
    FPlayer.EndCriticalSection();
 end;
end;

procedure TMusicPlayerThread.UnLock();
begin
 try
    FPlayer.BeginCriticalSection();

    Event.SetEvent();
 finally
    FPlayer.EndCriticalSection();
 end;
end;


← →
Loginov Dmitry ©   (2007-11-08 23:18) [44]

Функции Lock и UnLock в данном случае - простые и защищать критической секцией здесь нечего.



Страницы: 1 2 вся ветка

Скачать: CL | DM;



Память: 0.52 MB
Время: 0.015 c
2-1194290214
olegusis
2007-11-05 22:16
2007.12.02
ПРОЦЕДУРЫ


15-1193996143
ocean
2007-11-02 12:35
2007.12.02
IIS под XP


1-1189609395
sshaitan
2007-09-12 19:03
2007.12.02
Перевод кодов символов формата Unicode в строку


2-1194072771
Nike85
2007-11-03 09:52
2007.12.02
Как сохранить рез-ты query в таблицу для дальнейшего импорта?


15-1193727308
Garik888
2007-10-30 09:55
2007.12.02
Компонент для печати




   Наверх