powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вызов Start для приостановленного потока
47 сообщений из 47, показаны все 2 страниц
Вызов Start для приостановленного потока
    #39726220
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наткнулся на непонятки в DX10.2.3_CE: если создать доп.поток приостановленным, например так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
  FreeOnTerminate:= False;
  Priority:= tpLower;

  if Suspended then Start;
//  if Suspended then Resume;
end;


а затем запустить рекомендуемой процедурой Start, то получаем отлуп

Код: pascal
1.
Cannot call Start on a running or suspended thread.



Старый добрый Resume, показываемый в Code Insight серым цветом (deprecated же), запускает поток корректно. Я что-то пропустил?
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726256
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокЯ что-то пропустил?
Очень много... Уже и не помню, с какой версии такое поведение.
Даже в fpc пишут:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TThread.Start;
begin
  { suspend/resume are now deprecated in Delphi (they also don't work
    on most platforms in FPC), so a different method was required
    to start a thread if it's create with fSuspended=true -> that's
    what this method is for. }
  Resume;
end;  
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726377
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanДаже в fpc пишут
но мне нужно ехать, а не шашечки. :)

Как быть? По-прежнему запускать посредством Resume? Или есть более кошерный, но работающий способ?

зы. на Лазаре применение Resume/Start нареканий не вызывает (кроме пресловутого предупреждения о deprecated). А вот на последних дельфях ...
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726395
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док,

Кошерно - через TEvent...
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726404
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокИли есть более кошерный, но работающий способ?
Уже написали. У меня аналогично: поток стартует, готовит очередь и засыпает.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726494
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpubКошерно - через TEvent...
ага, знаю я вас. Сначала эвенты, потом мютексы, семафоры, критические функции и проч.проч.

Нафик, допилю 10-летней давности проект на D2007 и уйду на Лазарь :)

зы. Рустам, перенеси, плз, относящиеся к теме посты в отдельную ветку. Думал, только спросить, а тут "вон оно, чо" ©
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726508
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanУже написали.
т.е. приостановленный поток топорным способом не запустить, а только через SetEvent?
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726532
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док,

Зато наглядно, в случае suspend/resume - не угадаешь - где остановился поток.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726572
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокwadmanУже написали.
т.е. приостановленный поток топорным способом не запустить, а только через SetEvent?
Топорным способом - это не кашерно и не предсказуемо.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726702
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanТопорным способом - это не кашерно и не предсказуемо.
у меня поток выполняет одноразовую работу. А твой совет нарушает принцип бритвы Оккамы :)

зы. иногда желание довести все до "совершенства" рождает трудно читаемый код
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726725
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокА твой совет нарушает принцип бритвы Оккамы :)
Нисколько. Как раз необходимость корректно завершить/остановить поток это необходимость.
Другое дело, что не все так считают. Кто-то и "пожалуйста" не считает нужным говорить.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726734
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокА твой совет нарушает принцип бритвы Оккамы :)
Вот минимальный поток с доп. функционалом:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
unit Unit2;

{$mode objfpc}{$H+}

interface

uses
    Classes, SysUtils, Forms, Controls, Graphics, Dialogs, syncobjs, Windows;

const
    WM_USER = 1024;

type

    { TMyThread }

    TMyThread = class(TThread)
    private
        FEvent: TEvent;
        FOwner: TForm;
        FSomePar: integer;
    protected
        procedure Execute; override;
    public
        procedure AfterConstruction; override;
        destructor Destroy; override;
        property Owner: TForm read FOwner write FOwner;
        property SomePar: integer read FSomePar write FSomePar;
        property Event: TEvent read FEvent;
    end;

type

    { TForm2 }

    TForm2 = class(TForm)
        procedure FormCreate(Sender: TObject);
    private
        procedure WMTest(var Msg: TMessage); message WM_USER+1;
    public

    end;

var
    Form2: TForm2;

implementation

{$R *.lfm}

{ TForm2 }

procedure TForm2.FormCreate(Sender: TObject);
var t: TMyThread;
begin
    t := TMyThread.Create(false);
    t.Owner := Self;
    t.SomePar := 10;
    t.Event.SetEvent;
end;

procedure TForm2.WMTest(var Msg: TMessage);
begin
    // тут нам что-то сообщили
    Caption := 'Final!';
end;

{ TMyThread }

procedure TMyThread.Execute;
begin
    while not Terminated do begin
        if not Terminated then FEvent.WaitFor(INFINITE);
        if not Terminated then begin
            if SomePar = 10 then begin
                // тут работу работуем
                Sleep(1000);
                if Assigned(FOwner) then PostMessage(FOwner.Handle, WM_USER+1, 0, 0);
            end;
        end;
    end;
end;

procedure TMyThread.AfterConstruction;
begin
    inherited AfterConstruction;
    FEvent := TEvent.Create(nil, false, false, 'MyEvent');
end;

destructor TMyThread.Destroy;
begin
    Terminate;
    FEvent.SetEvent;
    Sleep(100);
    FEvent.Free;
    inherited Destroy;
end;

end.

...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726848
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВот минимальный поток с доп. функционалом
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726852
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ДокwadmanВот минимальный поток с доп. функционалом



как человек, варивший трубы, скажу, что тут поработал Мастер
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726866
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorтут поработал Мастер
это кто-то оспаривает? ;)
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726887
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Докэто кто-то оспаривает? ;)
Руки мастера, мозг ... Но тут надо историю знать :)
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726888
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокwadmanВот минимальный поток с доп. функционалом



Все будет проще, если код потока отделишь от формы. :)
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726892
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВот минимальный поток с доп. функционалом:

А почему Sleep(100), а не 146, например?
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726893
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я к тому, что:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
  ...
  while (FEvent.WaitFor(INFINITE) = wrSignaled) and not Terminated do begin
  ...

destructor TMyThread.Destroy;
begin
  FEvent.Free;
  inherited Destroy;
end;
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726894
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpwadmanВот минимальный поток с доп. функционалом:

А почему Sleep(100), а не 146, например?
Пусть будет 146. Не проблема.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726903
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВсе будет проще, если код потока отделишь от формы. :)А я всегда говорил, что форма (контролы) это витринка.
Процессору (мозгу) интересен ассемблер.

Иллюстрация у магазина:
- Экспозиция в витрине
- Вывеска
-- тупо нарисовано на картонке
-- железную конструкцию (типа железный сапог на цепях) ветер качает
...
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726938
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВсе будет проще, если код потока отделишь от формы. :)
мой код, написанный 10 лет назад, теперь у меня вызывает бурю негативных эмоций. А ты предлагаешь еще "отделять бизнес слой от ГУИ-шного" ©
[spoiler][youtube=
YouTube Video
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726943
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокА ты предлагаешь еще "отделять бизнес слой от ГУИ-шного" ©
Предлагаю взять мою обертку и не париться. вместо батона кинул поток на форму, завел пару тасков и их обработчиков и всё!
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726947
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
wadmanДокА ты предлагаешь еще "отделять бизнес слой от ГУИ-шного" ©
Предлагаю взять мою обертку и не париться. вместо батона кинул поток на форму, завел пару тасков и их обработчиков и всё!
давай обёртку, мне надо
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726951
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorwadmanпропущено...

Предлагаю взять мою обертку и не париться. вместо батона кинул поток на форму, завел пару тасков и их обработчиков и всё!
давай обёртку, мне надо
Дак тут всё https://github.com/wadman/wthread
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726962
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
wadmandefecatorпропущено...

давай обёртку, мне надо
Дак тут всё https://github.com/wadman/wthread
я забыл, где оно паслось
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726965
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanПредлагаю взять мою обертку и не париться.
надеюсь, на D2007 взлетит. Спасибо :)
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726970
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокwadmanПредлагаю взять мою обертку и не париться.
надеюсь, на D2007 взлетит. Спасибо :)
Летает и на D7 и на 10.x и на маках, убунтах всяких.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726971
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
wadmanДокпропущено...

надеюсь, на D2007 взлетит. Спасибо :)
Летает и на D7 и на 10.x и на маках, убунтах всяких.
хорошо наговнокодил, молодец !
Щаз буду юзать !
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39726976
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorwadmanпропущено...

Летает и на D7 и на 10.x и на маках, убунтах всяких.
хорошо наговнокодил, молодец !
Щаз буду юзать !
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727047
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокНаткнулся на непонятки в DX10.2.3_CE: если создать доп.поток приостановленным, например так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
  FreeOnTerminate:= False;
  Priority:= tpLower;

  if Suspended then Start;
//  if Suspended then Resume;
end;


а затем запустить рекомендуемой процедурой Start, то получаем отлуп

Код: pascal
1.
Cannot call Start on a running or suspended thread.







Старый добрый Resume, показываемый в Code Insight серым цветом (deprecated же), запускает поток корректно. Я что-то пропустил?
я вообще не вижу смысла в твоём коде, делай просто
Код: pascal
1.
2.
3.
4.
5.
6.
constructor TMyThread.Create();
begin
  inherited Create(False);
  FreeOnTerminate:= False;
  Priority:= tpLower;
end;

будет то же самое
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727133
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorкак человек, варивший трубы, скажу, что тут поработал Мастер
мне когда на хате ремонт доделали и я уже заезжал, обнаружилось что дурит смеситель с термостатом в ванной, не работает, кипяток льет. выяснилось что монтажники-джамшуты кроме всего прочего и подводку в этом месте перепутали, а есть лишь небольшое ревизионное окошко и думал что придется ломать плитку, не успев заехать. благо спец именно по сантехнике сумел перепаять прям через эту маленькую дверцу
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727231
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
Как раз собирался искать :) Спасибо!
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727237
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)я вообще не вижу смысла в твоём коде, делай просто
Код: pascal
1.
2.
3.
4.
5.
6.
constructor TMyThread.Create();
begin
  inherited Create(False);
  FreeOnTerminate:= False;
  Priority:= tpLower;
end;


будет то же самое
В моём коде это имеет смысл. На, пробуй свои советы на практике :)
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727262
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док В моём коде это имеет смысл. На, пробуй свои советы на практике :)

Как я понимаю, неважно, создаем мы так
Код: pascal
1.
inherited Create(False)


или же так
Код: pascal
1.
inherited Create(True)


поток в конструкторе TThread.Create создается приостановленным и стартует (даже если в конструкторе наследника используется inherited Create(False) ) только после выполнения конструктора - в процедуре AfterConstruction. Поэтому все операторы и процедуры в конструкторе класса-наследника в любом случае выполнятся до того, как стартует поток.
Может я ошибаюсь, конечно, но по-моему это так.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727275
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62,

s62 и стартует (даже если в конструкторе наследника используется inherited Create(False) ) только после выполнения конструктора - в процедуре AfterConstruction
Не даже если, а просто если.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727294
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокНаткнулся на непонятки в DX10.2.3_CE: если создать доп.поток приостановленным, например так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
  inherited Create(CreateSuspended);
  FreeOnTerminate:= False;
  Priority:= tpLower;

  if Suspended then Start;
// if Suspended then Resume;
end;



а затем запустить рекомендуемой процедурой Start, то получаем отлуп

Код: pascal
1.
Cannot call Start on a running or suspended thread.




Старый добрый Resume, показываемый в Code Insight серым цветом (deprecated же), запускает поток корректно. Я что-то пропустил?Правильно тебя посылает. Скорей всено, Start выполняет запуск потока, который запрещен в конструкторе. Передай False в параметр Suspended - и всё, никаких Resume не надо будет и все будет хорошо.
Suspended нужно для того, чтобы после конструктора но до запуска потока что-то изменить в объекте потока. Не твой случай.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727299
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanВот минимальный поток с доп. функционалом
wadman
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
procedure TMyThread.AfterConstruction;
begin
    inherited AfterConstruction;
    FEvent := TEvent.Create(nil, false, false, 'MyEvent');
end;

destructor TMyThread.Destroy;
begin
    Terminate;
    FEvent.SetEvent;
    Sleep(100);
    FEvent.Free;
    inherited Destroy;
end;


Брррр.
Надо хоть так:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure TMyThread.AfterConstruction;
begin
    FEvent := TEvent.Create(nil, false, false, 'MyEvent');
    inherited AfterConstruction;
end;

destructor TMyThread.Destroy;
begin
    Terminate;
    FEvent.SetEvent;
    inherited Destroy;
    FEvent.Free;
end;
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727300
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

А еще желательно в деструкторе проверять на Assigned( FEvent ), если в конструкторе возможны исключения.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727444
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockСкорей всено, Start выполняет запуск потока, который запрещен в конструкторе.
Абсолютно верно. На Tokyo Start разрешен только в основном потоке, а вот в Лазарусе - везде(и в конструкторе, и в основном потоке).

И, теперь вижу, что это правильно: ибо, если создать поток так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    try
      fThread:= TMyThread.Create(True);
      try
        frmSplash:= TfrmSplash.Create(Self);
//        if fThread.Suspended then fThread.Start;
        frmSplash.ShowModal;
      finally
        FreeAndNil(frmSplash);
      end;

      frmChild.ShowModal;
    finally
      FreeAndNil(fThread);
    end;


, но "забыть" стартануть его, то код в основном потоке продолжится дальше без выполнения fThread.Execute. А вот это уже фэйл :)

YuRockПередай False в параметр Suspended - и всё, никаких Resume не надо будет и все будет хорошо.
Я это делаю намеренно: мне нужно быть точно уверенным, что некоторые переменные будут инициализированы в конструкторе ДО запуска доп.потока
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727446
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще не понимаю смысла приостановленных нитей. Они ж нужны чтобы выполнить работу в определенный момент времени. А если надо пауза, то это дело объектов синхронизации.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727453
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокЯ это делаю намеренно: мне нужно быть точно уверенным, что некоторые переменные будут инициализированы в конструкторе ДО запуска доп.потока
Независимо от параметра - ВСЕ переменные будут инициализированы в конструкторе ДО запуска потока.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727468
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpВСЕ переменные будут инициализированы в конструкторе ДО запуска потока
это описано в доке или просто твоя уверенность?
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727476
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я чуть выше неточно выразился: мне инициализировать некоторые переменные ДО запуска, но не только в конструкторе (например, frmSplash в коде выше).
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727479
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокalekcvpВСЕ переменные будут инициализированы в конструкторе ДО запуска потока
это описано в доке или просто твоя уверенность?Да, но ищи сам. Главное, это описано в исходниках класса TThread - запуск потока происходит в AfterConatruction.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727480
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокЯ чуть выше неточно выразился: мне инициализировать некоторые переменные ДО запуска, но не только в конструкторе (например, frmSplash в коде выше).Тогда да, надо. Но тогда и Start должен сработать.
...
Рейтинг: 0 / 0
Вызов Start для приостановленного потока
    #39727484
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockэто описано в исходниках класса TThread - запуск потока происходит в AfterConatruction
в справке тоже об этом сказано. По коду, оба метода: и Start, и AfterConstruction вызывают InternalStart, только с разными параметрами. Так что, про "все в конструкторе инициализируется ДО" Execute доп.потока - это я просто сам не догадался :)

Познавательно, однако...
...
Рейтинг: 0 / 0
47 сообщений из 47, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вызов Start для приостановленного потока
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]