Вниз
Скачать: 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.016 c
3-1184178500
olevacho_
2007-07-11 22:28
2007.12.02
подключение к базе через FB-embedded


15-1193663181
Jeer
2007-10-29 16:06
2007.12.02
Эфемерный E2k


15-1193827892
Ega23
2007-10-31 13:51
2007.12.02
Народ, а никто случайно не знает, какой сейчас официальный


2-1194439289
novill
2007-11-07 15:41
2007.12.02
Как задать цвет выводимых символов в консольном приложении?


2-1194363691
dumka
2007-11-06 18:41
2007.12.02
DBImage




   Наверх