Как правильно использовать потоки (TThread)?

 
0
 
Delphi, Kylix and Pascal
ava
Nicholas | 05.09.2016, 05:02
Есть у меня ФТП клиент на WinAPI, ну и при подключении например по медленному каналу форма зависает пока не подключиться, как мне этот момент подключения затолкать в отдельный поток, чтобы форма не висла и были доступны элементы управления?

Я не долго думая сделал просто:



// класс потоко
  TNewThread = class(TThread)
  private
    Progress: integer;
    procedure Connect;
  protected
    procedure Execute; override;
  end;

//-----------------------
procedure TNewThread.Execute;
begin
      Synchronize(Connect);
  end;

procedure TNewThread.Connect;
begin
// тупо нажал кнопку запускающую процедуру подключения из потока
MainPage.BtnConnectClick(self);

end;



Ну и ...  :crazy  подключает и делфи пишет, что создан поток который после подключения завершается, НО форма так же виснет  :-D 
Ответы (2)
ava
kami | 05.09.2016, 20:44 #
Цитата (Nicholas @  5.9.2016,  05:02 findReferencedText)
НО форма так же виснет

Потому что нет у вас кода, выполняющегося в этом доп.потоке. Совсем нет.
Завязывайте с книгами типа "Дельфи глазницами быдлокодера" (автора называть не буду, книга очень многим знакома :)  ). Гидом буду - код взят оттуда, там именно такой пример был. Почитайте что-нибудь более тривиальное. Да хотя бы статью на Винграде http://forum.vingrad.ru/forum/topic-60076.html
ava
Kitu Chepesi | 14.09.2016, 18:03 #
+1
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить