Цитата:
Сообщение от ~TB~
У меня в одном приложении примерно так работает. Проблем никаких не наблюдаю. Главное не забывать пинать поток когда нужно.
Код:
procedure TMySuperDuperThread.Execute;
begin
while not Terminated do
if not Suspended then
begin
if SomeProp then
ApplySomeProcedure
else
Suspend;
end;
end;
|
А разве проверка "if not Suspended then" здесь нужна и имеет смысл? Если поток остановлен, то он никак не может проверить своё состояние, а если поток запущен, то это условие всегда будет давать Истину.
Цитата:
Сообщение от icWasya
И самое главное, нафига внутри Execute вся полезная работа делается под Synchronize ?
|
Я так понял, что в том примере под полезной работой подразумевается это:
А свойство SomeProp нужно, чтобы основной поток мог сигнализировать этому потоку, что нужны результаты его работы.