Поиск:

Ответ в темуСоздание новой темы Создание опроса
> потоки и формы 
:(
    Опции темы
Гость_Tatiana
Дата 4.10.2005, 06:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В программе две формы. В одной при нажатии кнопки пвтаюсь вызвать поток, использующий vcl, но при его выполнении зависает вся программа. Как сделать, чтобы этого не происходило?

Код

void __fastcall TForm3::Button1Click(TObject *Sender)
{
  TForm1 *F=new TForm1(Application);
  F->Show();
}


//------------------------------------------------------------------------
void __fastcall TTr::Execute()
{
        Synchronize(Exec);
}
//---------------------------------------------------------------------------
void __fastcall TTr::Exec()
{
        form->upd();
}
//---------------------------------------------------------------------------

void  TForm1::upd()
{
  while(1)
    Label1->Caption=Edit1->Text;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  TTr *t=new TTr(false);
  t->FreeOnTerminate=true;
  t->form=this;
}
//------------------------------------------------------------------
 


  Вверх
_hunter
Дата 4.10.2005, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



Цитата
Как сделать, чтобы этого не происходило?

убрать
Код

while(1)
    Label1->Caption=Edit1->Text;



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Guest
Дата 4.10.2005, 11:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да я нарочно этот бесконечный цикл поставила для теста потока

На самом деле в цикле будет добавление точек в Series TChart-а, но т.к. точек очень много, а тормозить прогу не хочется, решила сделать поток. Значения будут браться из ADOQuery на той же форме. Как это лучше организовать?

  Вверх
_hunter
Дата 4.10.2005, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



так что ты хочеш? Synchronize() выполняет все действия в контексте основного потока. с while(1) эти действия никогда не закончатся


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.