Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вернуть значение из нити (Tread), как лучше использовать Tread 
:(
    Опции темы
MARIA123
Дата 30.1.2012, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго всем времени суток!
Помогите справиться со следующей проблемой.

В приложении есть основной поток  и в определенный момент он создает дочерний поток с помощью Tread. Но основное приложение не ждет завершения дочернего потока.

Вопрос: как дочернему потоку сообщить, что он уже закончил свою работу? Или же как это можно реализовать другими средствами?
PM MAIL   Вверх
Dem_max
Дата 30.1.2012, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

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



Цитата

как дочернему потоку сообщить, что он уже закончил свою работу?


Код

pThread->Termitate();



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
MARIA123
Дата 30.1.2012, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



        pThread->Termitate();--но это же убивает дочерний процесс из родилеского.
А мне надо как-то родительскому процессу сообщить, что дочерний заверщился

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

Это сообщение отредактировал(а) MARIA123 - 30.1.2012, 22:42
PM MAIL   Вверх
Dem_max
Дата 31.1.2012, 04:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

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



Цитата

pThread->Termitate();--но это же убивает дочерний процесс из родилеского.

А его и не надо убивать.

Код

pThread->Termitate(); // Посылаем сигнал потоку чтобы он завершился
pThread->WaitFor(); // Ожидаем завершение потока
// дочерний поток завершился, можем дальше продолжать.



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
xvr
Дата 31.1.2012, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(MARIA123 @  30.1.2012,  20:01 Найти цитируемый пост)
Появилась идея, что перед закрытием нити она должна отправить сообщение приложению.

Вызовите callback функцию через Synchronize перед завершением нити


PM MAIL   Вверх
MARIA123
Дата 1.2.2012, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а что это за функция такая?гугл что-то не очень помогает
PM MAIL   Вверх
Dik0n
Дата 2.2.2012, 01:50 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Что за фигню вы тут советуете, прекрасное собитие есть для этого OnTerminate

Это сообщение отредактировал(а) Dik0n - 2.2.2012, 01:53
--------------------
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ◄◄◄ Сотри монеткой защитный слой
PM MAIL WWW   Вверх
xvr
Дата 2.2.2012, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(MARIA123 @  1.2.2012,  20:30 Найти цитируемый пост)
а что это за функция такая?

Эта ваша функция, которую позовет ваш Thread, перед тем как завершится

Цитата(Dik0n @  2.2.2012,  01:50 Найти цитируемый пост)
прекрасное собитие есть для этого OnTerminate

Тоже вариант. В принципе делает именно то, что я и рекомендовал (но делает это сам  smile )

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

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

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

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

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


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

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


 




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


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

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