Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.01.2016, 11:30
Loca Loca вне форума
Прохожий
 
Регистрация: 28.10.2015
Сообщения: 20
Версия Delphi: delphi 10
Репутация: 518
По умолчанию Уничтожение и повторный запуск потока

Здравствуйте, как можно сделать, что бы при старте потока проверялось, если он существует, то уничтожить его и запустить снова.
Пробовал так:

Сам поток (лежит на модуле формы)
Код:
  type
  thread = class(tthread)
  private
  procedure create;
  procedure load;
  procedure show;
  procedure resiz;
  public
  procedure execute; override;
  end;

Выполнение
Код:
procedure thread.Execute;
begin
load;
synchronize(create);
sleep(50);
synchronize(show);
sleep(50);
if str=true then synchronize(resiz);

pot:=nil;
end;

Запуск
Код:
if pot<>nil then
begin
pot.Terminate;
pot:=nil;
end;

pot:=thread.Create(true);
pot.FreeOnTerminate:=true;
pot.Priority:=tpnormal;
pot.Resume;

И если много раз запустить его, то он не уничтожается. А т.к. поток работает с компонентами на форме, происходит AV.

Даже проверял, убирал все процедуры, кроме одной, в ней писал:
memo....add('поток запущен');
sleep(5000);
memo....add('поток завершён');

Нажимал быстро раз 10 на кнопку, которая запускает поток, и через пять секунд в мемо десять раз написало "поток завершён"

Помогите пожалуйста. Поиск не помог, почти все темы про Terminate, а как на писать условие нигде нет.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:23.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025