Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2011, 14:48   #1
buket
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 18
По умолчанию запуск потока из таймера, как?

не получается запустить потоки из таймера, при создании потока из кнопки все работает
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
  MyThread:=TMyThread.Create(False);
  MyThread.Priority:=tpNormal;
  MyThread.FreeOnTerminate:=true;
end;
при запуске из таймера не запускается(таймер включен на 15 секунд)
Код:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
  MyThread:=TMyThread.Create(False);
  MyThread.Priority:=tpNormal;
  MyThread.FreeOnTerminate:=true;
end;
buket вне форума Ответить с цитированием
Старый 15.12.2011, 15:16   #2
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Если я не ошибаюсь, то нужно создать конструктор потока create где вы и пропишите
Код:
MyThread:=TMyThread.Create(False);
  MyThread.Priority:=tpNormal;
  MyThread.FreeOnTerminate:=true;
а потом уж и запустить в таймере его
например MyThread.create(false);

Вроде так.. Точн не могу сказать.
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 15.12.2011, 15:46   #3
buket
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 18
По умолчанию

конец дня сказывается, мозг в ауте, проблему решил, упустил 1 строку кода
buket вне форума Ответить с цитированием
Старый 15.12.2011, 15:52   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
  MyThread:=TMyThread.Create(False);
  MyThread.Priority:=tpNormal;
  MyThread.FreeOnTerminate:=true;
Так нельзя с потоком обращаться. Поток может быстрей выполиться, чем дело дойдет до следующей команды после его создания
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.12.2011, 01:38   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Вот интересно, зачем запускать таймеры в потоке?
Человек_Борща вне форума Ответить с цитированием
Старый 16.12.2011, 10:08   #6
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Цитата:
Вот интересно, зачем запускать таймеры в потоке?
не таймеры в потоке, а потоки в таймере )))
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 16.12.2011, 11:36   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Не имеет значения (= В любом случае бред.

Но усли уж надо толпа потоков из таймера. То я бы создал пул потоков и оттуда брал свободные. А пр необходимости просил у пула ёщё....
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск таймера Alexandr000006 Помощь студентам 4 08.03.2011 16:09
Как узнать номер потока из самого потока? GaMeSTeR Помощь студентам 0 03.12.2010 09:50
Запуск таймера из потока (delphi 2010) Terikon Общие вопросы Delphi 10 07.08.2010 18:09
[Вопрос] Как определить прогресс таймера? ZARO Помощь студентам 13 12.03.2010 06:23
Управление потоками. Запуск, остановка, приоритет потока. metamfetamin Помощь студентам 5 11.11.2007 12:45