Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.99/89: Рейтинг темы: голосов - 89, средняя оценка - 4.99
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30

Определить состояние потока TThread

11.05.2012, 23:25. Показов 18380. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как узнать создан ли поток и в каком он состаянии: закочен или еще выполняется?

Думал по указателю ( Thread1!=NULL), но при Thread1->FreeOnTerminate= true; это не очевидно...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2012, 23:25
Ответы с готовыми решениями:

Дождаться завершения потока TThread
Есть поток TThread под названием autoupdate и я зщ как после его вызова дождатся его завершения и продолжнить работу. Например в кнопке в...

Реализация на базе TThread потока с timeout'ом
Реализация прибития потока по timeout'у у меня сейчас реализовано следующим способом. Имеется окно (TForm), которое запускает поток...

Корректное освобождение памяти при принудительном завершении потока TThread
У меня в отдельном потоке выполняются некоторые вычисления. В процессе выполнения этой функции создаются и удаляются различные объекты....

45
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.05.2012, 00:40  [ТС]
Студворк — интернет-сервис помощи студентам
Не могу судить потому как не разбираюсь в делфи
Delphi
1
function ThreadProc(Thread: TThread): Integer;
Что такое тут Thread указатель на объект или объект?

Если обьект, то что даст его обнуление?
Если указатель, то при передачи в ф-цию создасться попросту еще одина локальная копия указателя передаваемого в ф-цию,
что опять таки ни к чему не приведет.
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
17.05.2012, 00:54
Pascal
1
function ThreadProc(Thread: TThread): Integer;
Добавлено через 5 минут
Цитата Сообщение от Avazart Посмотреть сообщение
Что такое тут Thread указатель на объект или объект?
В CBuilder - это однозначно указатель на объект, так как все VCL объекты создаётся в виртуальной памяти

Добавлено через 1 минуту
То есть, когда в функции ThreadProc вызывается Thread.Free() это равносильно тому,
что ты сам у своего потока в Билдере вызовешь Thread->Free()

Добавлено через 4 минуты
Цитата Сообщение от Avazart Посмотреть сообщение
Если обьект, то что даст его обнуление?
Это обнуление при последующем обращении к переменным класса TThread выдаст Access violation тем самым предохранит от доступа к мусорной памяти и не будет путать в будущем программистов.
Если бы было так, то мы не потратили бы 5 страниц обсуждений :-)
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.05.2012, 00:58  [ТС]
В CBuilder - это однозначно указатель на объект, так как все VCL объекты создаётся в виртуальной памяти
Я знаю как в Builder-e я про Delphi спрашивал по тому как при коде на Builder-e
C++
1
2
3
4
5
6
7
8
9
10
//....
 int ThreadProc(TThread* Thread)
{
//где то там в конце ф-ции
Thread = NULL;  
//...
}
TThread *Thread = new Thread(/*...*/);
 
ThreadProc(Thread);//Вызов ф-ции
Значение указателя Thread не будет = NULL.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.07.2014, 00:46  [ТС]
Продолжение и вариант решения тут Проверка существования потока
1
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
20.08.2014, 12:02
Правильно ли я понял, что если мы хотим по каким-либо причинам ориентироваться изнутри потока о его состоянии по OnTerminate, то следует внутри потока использовать синхронизацию, для проверки этого события?
Псевдокод:
C++
1
2
3
4
5
6
void __fastcall SaveThread::Execute()
{
  while( !Synchronize( this->OnTerminate ) )
    {
    }
}
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.08.2014, 12:07  [ТС]
Чего ?

OnTerminate это свойство-событие, по сути указатель на функцию которую нужно синхронно выполнить перед завершением потока.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.08.2014, 12:07

Как определить состояние SUSPENDED потока?
Один способ вроде как знаю, но он мне не нравится: Вызвать SuspendThread которая вернёт предыдущее значение счётчика...

Состояние файлового потока
.... fostream log; .... class A { public: A (); }; A::A() {

Как освободить состояние потока ?
Здравствуйте. Нужна помощь. Вот небольшая часть моей программы int nr_block; while (true) if (cin>>nr_block,cin.good()) { ...

Как узнать состояние потока в данный момент?
Как узнать состояние потока(приостановлен или работает)? Использую библиотеку <thread>

ShellExecute из потока Tthread
Здравствуйте. Нужно в потоках вызывать функцию Shellexecute для выполнения команд. Грубо говоря, вот так: ...


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

Или воспользуйтесь поиском по форуму:
46
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru