Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596

Взаимодействие потока и основной программы

02.06.2015, 10:45. Показов 3217. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
- Здравствуйте многоуважаемые! Наверняка кто-то хорошо разбирается в вещах, в которых я сейчас заплутал.

В моем приложении в основной программе:
a) - создается экземпляр некоего класса (longjob_type). Класс "Длительного Задания".
b) - запускается отдельный поток.
c) - и из потока выполняется метод упомянутого в пункте a) класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// .........
void  longjob_type::run( void )
{
//  // подать сигнал в основную программу.
//  Form1->StaticText1->Caption = "longjob - BEGIN.";
  // изменить цвет.
  color = clRed;
  // .........
  Form1->Canvas->Refresh();
//  Form1->Invalidate();
 
  // ... длительные вычисления.
  Sleep( 5000 );
 
//  // подать сигнал в основную программу.
//  Form1->StaticText1->Caption = "longjob - END.";
  // восстановить цвет.
  color = clBlack;
  // .........
  Form1->Canvas->Refresh();
//  Form1->Invalidate();
}
Собственно "Длительное Вычисление" сейчас для тестирования заменены в методе функцией Sleep( 5000 );

- Вижу, что поток организуется, метод run() - выполняется и после отрабатывания Sleep() - поток уничтожается.
Все работает прекрасно, пока не раскомментирую строки метода 5 и 16, т.е. не подам сигнал в основную программу!

- Если я включаю вышеупомянутые строки, то метод run() ЗАВИСАЕТ на их выполнении.
Подскажите пожалуйста как это исправить? Как "грамотно" подать сигнал из потока в основную программу?

Заранее благодарен!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.06.2015, 10:45
Ответы с готовыми решениями:

Вызов подпрограммы из основной программы, с сохранением работоспособности основной программы?(подробно внутри)
Добрый день. Буду благодарен, если кто-нибудь подскажет как такое реализовать. Суть вопроса: В основном консольном приложении...

Завершение основной программы из дочернего потока _beginthread
Подскажите пожалуйста команду, которая закрывает основную программу из созданного потока

Кнопки на другой форме, взаимодействие с основной формой?
Была основная форма, там кнопка "Подключиться...". Хочу перенести на другую форму, но она там не работает... Кнопка на основной форме: ...

20
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
08.06.2015, 09:51  [ТС]
Студворк — интернет-сервис помощи студентам
- Извиняюсь за отсутствие в выходные, дома у меня Интернета нет.
- volvo, повторил Ваш эксперимент. Все совершенно, как у Вас.

- Я продолжил Ваш эксперимент. Я "подсунул" в родной (из пакета) вызов метода CreateThread()
Ваш глобальный метод run() в качестве функции-потока.

- Теперь в проекте два совершенно одинаковых "Создания Потока API" с одной и той-же функцией-потока:
1) - Ваше из обработчика клавиши Button2;
2) - Родное из пакета;

Результат не понятен:
при вызове из Button2 - все работает отлично, как и у Вас;
при запуске из пакета - никаких действий !
Хотя вызов Вашей функции run() я вижу в отладчике в обеих случаях !

- Видимо причина такого поведения лежит в какой-то другой плоскости ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2015, 09:51

Signal Slot из отдельного потока в основной
Доброго времени суток. Имеется QTreadPool. Имеется свой Runnable с методом run. Внутри есть сигнал signals: void...

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

Передача данных их вторичного потока в основной
Данные из основного потока во вторичный передаются так: Imports System.Threading ' Потоки. Передача данных предварительно...

Эффективная передача управления из промежуточного потока в основной
Платформа NET2.0 -3.0. 1) есть основной поток в котором собственно выполняется программа (с других потоков нельзя вызывать методы...

Основной поток не дожидается завершения работы вторичного потока
Здравствуйте! Возник такой вопрос. Почему в следующем коде основной поток не дожидается завершения работы вторичного потока. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения. https:/ / habr. com/ ru/ sandbox/ 295048/ начало и оглавление - Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru