Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача данных в поток 
V
    Опции темы
kuvshinka
Дата 9.11.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

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



Есть 2 кнопки:
По щелчку на Button1 из эдита считывается значение потокового параметра и запускается сам поток… По щелчку на Button2 работа потока должна завершаться…
Делаю так:
Код

__fastcall net_thread::net_thread(bool CreateSuspended)
        : TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------

 void __fastcall net_thread::show()
 {
        Form1->Edit1->Text= tt ;    //param;
 }
 //---------------------------------------------------------------------------

 void __fastcall net_thread::end()
 {
        Terminated;
 }
 //---------------------------------------------------------------------------
void __fastcall net_thread::Execute()
{
         param++;
         Synchronize(show);
 }
//---------------------------------------------------------------------------
главный VCL-поток
__fastcall TForm1:: TForm1 (TComponent* Owner)
        : TForm(Owner)
{
   net_thread *net_exz = new  net_thread(true); 
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
          net_exz->tt = StrToInt(Edit2->Text);
          net_exz->Suspended = false;           
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
          net_exz->end();
}

При повторном нажатии (после онклика на Button2) на кнопку Button1 значение tt-параметра не изменяется (хотя в эдите я, естественно, задаю другое, чем в первый раз, число…) по ходу дела поток вообще не запускается повторно (не увеличивается счетчик запусков потока param…При попытке в Button2Click завершить поток методом net_exz->Suspended = true; выдается ошибка в отказе доступа – работает только Terminated…
Подскажите пож-та в чем тут дело и как это исправить?

PM MAIL   Вверх
Incinerated
Дата 9.11.2010, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 18.5.2006
Где: Беларусь, Новопол оцк

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



не работал с net_thread, но по коду:
Код

 void __fastcall net_thread::end()
 {
        Terminated;
 }

это скорее всего болеановское значение, возможно нужно вызвать функцию Terminate(), или установить этот параметр в true.

Добавлено через 1 минуту и 23 секунды
или это самописный класс?
PM MAIL   Вверх
kuvshinka
Дата 9.11.2010, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 27.4.2008

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



конечно самописный - наследник от TThread...
PM MAIL   Вверх
xvr
Дата 10.11.2010, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Ваш поток завершится при выходе из метода Execute(), и случится это сразу после того, как вы его стартуете. После этого потока уже нет, и пытаться с ним что то делать бессмысленно

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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