Конференция "Начинающим" » потоки(TThread) и свойства(property), не все понятно
 
  • Leonid Troyanovsky © (05.06.18 09:42) [20]

    > icp ©   (05.06.18 09:32) [18]

    > какой же тут форгет если он паблик проперти придумал.

    Какая разница паблик  не паблик, если все в одном флаконе.

    Я думаю, что у ТС уже есть все необходимое для
    выполнения домашнего задания.

    --
    Regards, LVT.
  • Leonid Troyanovsky © (05.06.18 09:45) [21]

    > Pcrepair ©   (05.06.18 09:39) [19]

    > подкину дровишек. вот так демо работает. несмотря на выше
    > опубликованный базар

    Зря за базаром не следишь, бо фигню написал.
    О чем еще в [1] сказано.

    --
    Regards, LVT.
  • icp © (05.06.18 10:20) [22]
    разница такая.
    если свойство то нужна ссылка на экземпляр.
    посему надо помнить про поток весь его жизненный цикл.
    никакого форгета здесь и близко не будет
  • icp © (05.06.18 10:26) [23]
    вейтфор. как это прелестно....
    впрочем очередной
    стотысячный велосипедист за последние 18 лет
    на дм.

    они словно однояйцевые как под копирку.
    когда в потоеи начинают.
  • icp © (05.06.18 10:39) [24]
    процессор выполнял полезную работу в основном потоке.
    затем ему сказали потратить кучу тактов и переключиться на вторичный и продолжить творить что то полезное. основной при этом тупо стоит и ничего не делает.

    итого.
    сделали ту же работу но за большее время и потратив
    впустую ресурсы на вторичный поток.

    конгратьюлейшен мистер
  • Leonid Troyanovsky © (05.06.18 17:38) [25]

    > icp ©   (05.06.18 10:20) [22]

    > если свойство то нужна ссылка на экземпляр.
    > посему надо помнить про поток весь его жизненный цикл.


    type
     TMyThread = class(TThread)
     public
       prop: Longint;
       procedure Execute; override;
     end;

    procedure TMyThread.Execute;
    begin
     prop := GetTickCount;
     Sleep(3000);
    end;

    procedure Tform1.PostMort;
    begin
     with Sender as TMyThread do
       ShowMessage(IntToStr(prop));
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     with TMyThread.Create(False) do
       begin
         FreeOnTerminate := True;
         OnTerminate := PostMort;
       end;
     ShowMessage('FAF');
    end;

    --
    Regards, LVT.
  • icp © (05.06.18 17:43) [26]
    и чо?
    до самого терминэйт работаем со ссылкой на поток.
    а типа если она сендером прилетела то как бы никто не заметил.
    это не настоящий выстрелил и забыл.
  • Leonid Troyanovsky © (06.06.18 08:57) [27]

    > icp ©   (05.06.18 17:43) [26]

    > и чо?

    Усложним задачу.

    Закоментируем
    // ShowMessage('FAF');
    и жмем кнопаку 40+ раз

    > до самого терминэйт работаем со ссылкой на поток.

    (следим за руками) ссылки не храним, за потоком не следим

    > а типа если она сендером прилетела то как бы никто не заметил

    дык, она ж сама прилетела, я про нее и забыл.
    Так что, все по взрослому, никакого Жюля.

    --
    Regards, LVT.
  • icp © (06.06.18 09:43) [28]
    все так просто?
    навесили он терминейт.
    оке.
    и теперь мы не просто помним о потоке (а мы помним я гарантирую это)
    так мы еще и взяли на себя обязательство что экземпляр класса с обработчиком будет жить дольше самого потока.

    а так да как бы не помним
  • Leonid Troyanovsky © (06.06.18 10:13) [29]

    > icp ©   (06.06.18 09:43) [28]

    > так мы еще и взяли на себя обязательство что экземпляр класса
    > с обработчиком будет жить дольше самого потока.

    Ой, как страшно жить.

    Выбор объекта необходимого уровня - еще тот бином.
    Не умеешь ставить блок -  ставь бутылку.

    Это даже не молчаливое завершение процесса,
    бо все в первичном потоке.

    --
    Regards, LVT.
  • icp © (06.06.18 11:44) [30]
    нутакчо.
    как бы забываем
    но на самом деле живем и помним.
    и уйти раньше терминэйта нельзя ибо будет взрыв.
    о чем спортм то?
 
Конференция "Начинающим" » потоки(TThread) и свойства(property), не все понятно
Есть новые Нет новых   [118487   +56][b:0][p:0.001]