Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
ВнизThread Найти похожие ветки
← →
c0pYc@t (2002-07-26 11:49) [0]Люди добрые объястите в чем дело. В хелпе нарыл что есть свойство
Terminated - показывает, завершен ли процесс. True - завершен, False - нет. Тип: Boolean;
подскажите что я делаю не так
создал процесс masthr[index] := TMyThr.Create(item);
а как посмотреть его свойство не знаю :(, чего то
нет его в списке masthr[index].???
что не так?
← →
Виктор Щербаков (2002-07-26 11:53) [1]Во первых это свойство Protected. Так что ты его просто не увидишь, если попытаешься обратиться из другого модуля.
← →
Skier (2002-07-26 11:53) [2]>c0pYc@t
Оно protected.
← →
Zavdim (2002-07-26 11:54) [3]А ты его напиши сам и прокомпилируй - если даст ошибку, то тогда смотри свой array - masthr - каково его описание.
А в списке не все всегда появляется. Причину не знаю.
← →
c0pYc@t (2002-07-26 11:55) [4]Виктор Щербаков © (26.07.02 11:53)
>Во первых это свойство Protected. Так что ты его просто не >увидишь, если попытаешься обратиться из другого модуля.
Skier © (26.07.02 11:53)
>Оно protected.
поскажите как его можно посмотреть очень нуна
← →
Skier (2002-07-26 11:59) [5]>c0pYc@t
В своём классе-потомке TMyThr перенеси его в раздел public.
TYourThread=class(TThread)
public
property Terminated;
end;
← →
c0pYc@t (2002-07-26 12:14) [6]И еще я не понял после чего Terminated=true
когда процесс завершен
← →
Виктор Щербаков (2002-07-26 12:15) [7]c0pYc@t (26.07.02 11:55)
Можно так:
TNewMyThread = class(TMyThr);
...
(masthr[index] as TNewMyThread).Terminated := true;
← →
Виктор Щербаков (2002-07-26 12:18) [8]c0pYc@t (26.07.02 12:14)
Чего?
← →
c0pYc@t (2002-07-26 12:22) [9]>Виктор Щербаков ©
меня интересует когда свойство Terminated становится true, т.е. когда можно считать что процесс завершен
← →
Виктор Щербаков (2002-07-26 12:23) [10]c0pYc@t (26.07.02 12:22)
procedure TThread.Terminate;
begin
FTerminated := True;
end;
Вопрос снят?
← →
Alx2 (2002-07-26 12:26) [11]>c0pYc@t (26.07.02 12:22)
>когда свойство Terminated становится true
Когда закончил работу метод Execute.
← →
Виктор Щербаков (2002-07-26 12:37) [12]c0pYc@t (26.07.02 12:22)
Хм. Чтобы внести ясность:
> меня интересует когда свойство Terminated становится true
См. Виктор Щербаков © (26.07.02 12:23)
Поток при это мможет продолжать работу. Мало того, он вообще может не реагировать на изменение св-ва Terminated.
> когда можно считать что процесс завершен
Только не процесс, а поток. См. Alx2 © (26.07.02 12:26)
← →
c0pYc@t (2002-07-26 12:42) [13]То есть после Execute
Terminated = true ???
← →
Виктор Щербаков (2002-07-26 12:46) [14]c0pYc@t (26.07.02 12:42)
Нет.
← →
c0pYc@t (2002-07-26 12:48) [15]Виктор Щербаков ©
когда же наконец
или оно вообще не меняется
← →
Виктор Щербаков (2002-07-26 12:51) [16]c0pYc@t (26.07.02 12:48)
Я тебе указал место, где изменяется член класса, соответствущий свойству Terminated. Это происходит при вызове метода Terminate.
← →
c0pYc@t (2002-07-26 12:54) [17]Т. е. в своем коде
последней строчкой в Execute должно быть Terminate и тогда все будет ок?
← →
Виктор Щербаков (2002-07-26 12:59) [18]c0pYc@t (26.07.02 12:54)
Если тебе действительно нужно изменять значение Terminated в конце метода Execute, то сделай это так:
try
// код потока
finally
FTerminated := true;
end;
← →
Alx2 (2002-07-26 13:04) [19]>c0pYc@t (26.07.02 12:54)
Здесь причина и следствие поменялись :)
В методе Execute можно обрабатывать Terminated и правильно реагировать на него.
← →
c0pYc@t (2002-07-26 13:20) [20]А FTerminated что такое?
← →
Виктор Щербаков (2002-07-26 13:36) [21]Какой ты всё-таки дотошный...
Если уж так интересно внутреннее устройство класса TThread, то почему бы самому не посмотреть его исходники.
← →
c0pYc@t (2002-07-26 14:19) [22]>Если тебе действительно нужно изменять значение Terminated в >конце метода Execute, то сделай это так:
Эээ извените за назойливость но
finally
FTerminated := true;
end;
ругается говорит что такое FTerminated
← →
Виктор Щербаков (2002-07-26 14:23) [23]Хм. Ну да, действительно. Это же в коде потомка. Нужно просто Terminated := true;
← →
c0pYc@t (2002-07-26 14:26) [24]Cannot assign to a read-only property
как это снять
← →
Polevi (2002-07-26 14:27) [25]2All
вам не надоело еще ?
← →
Виктор Щербаков (2002-07-26 14:31) [26]Мне уже надоело.
c0pYc@t (26.07.02 14:26)
Вызови Terminate вместо Terminated := true.
Хотя, не понятно, зачем тебе это всё нужно.
← →
saxon (2002-07-26 14:38) [27]В хелп не пробовали заглянуть?
У меня такое чувство, что там все написанно.
← →
c0pYc@t (2002-07-26 14:40) [28]На конец то заработало уууууууууф
← →
Виктор Щербаков (2002-07-26 14:40) [29]saxon © (26.07.02 14:38)
Зачем? Там ведь по английски, да еще и искать надо. Проще сюда заглянуть... и не напрягаться.
← →
saxon (2002-07-26 14:53) [30]Виктор Щербаков ©
:))
← →
Digitman (2002-07-26 15:09) [31]Не IronHawk-ли резвится ?)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.007 c