|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
||||||
RAD 2009-XE2 Как подождать завершения потоков ?07.10.2023, 12:10. Показов 4318. Ответов 69
Метки нет (Все метки)
Здрасте, пишу свой .pas модуль он подразумевает многопоточность, подскажите пожалуйста как правильно подождать пока все потоки не завершаться, перерыл весь интернет ничего нормально работающего не нашёл кроме такого костыля с Win32Check который так же работает через раз к сожалению:
0
|
||||||
| 07.10.2023, 12:10 | |
|
Ответы с готовыми решениями:
69
Как подождать завершения приложения (по имени окна) Как дождаться завершения всех работающих потоков? |
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
|||
| 08.10.2023, 19:35 | |||
|
В однопоточном режиме с трудом обсчитывается до 100 объектов, с пулом потоков - уже до 1000. И вот пока фоновые потоки пыхтят, новый цикл перемещения начинать нельзя)))) Добавлено через 1 минуту Вешать обработчик, чтобы отслеживать состояние других обработчиков?
0
|
|||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
||
| 08.10.2023, 20:00 [ТС] | ||
|
То есть из ассинхронного вызова должен получится синхронный )
0
|
||
|
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
|
|
| 09.10.2023, 02:15 | |
|
0
|
|
|
|
|
| 09.10.2023, 07:26 | |
|
если есть какие-то процессы, без которых программа не может идти "вперед", это совсем не значит, что она должна зависнуть.
она должна просто вырубить лишний интерфейс Представим, у нас есть условный Телеграм. При скачивании сразу нескольких видео (в фоновом режиме) вся программа останавливается и вы тихонько ждете, когда там все скачается. Нет. Вовсе нет. Потоки работают, ГП тоже работает, даже если из рабочих частей там только кнопка Выход.
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 09.10.2023, 08:37 | ||
|
Вопрос в том, как организовать именно ожидание, если оно нужно.
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||
| 09.10.2023, 08:54 | ||
|
0
|
||
|
|
||||||
| 09.10.2023, 08:59 | ||||||
|
три поста как организовать ожидание, с кодом
и новый вопрос - как организовать ожидание. а это тогда что? если надо просто подвесить программу, просто пишем поток.WaitFor() https://docwiki.embarcadero.co... ad.WaitFor Добавлено через 2 минуты ВО! а еще можно просто сделать
и поток исполняется как надо, залочивая программу))
1
|
||||||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
|
| 09.10.2023, 09:14 [ТС] | |
|
0
|
|
|
1072 / 513 / 41
Регистрация: 05.05.2022
Сообщений: 3,638
|
|
| 09.10.2023, 10:22 | |
|
Кстати, а кто мешает в каждом из потоков по завершении проверять весь пул потоков, и если поток обнаружит, что он последний, то сделает еще какую-то работу?
0
|
|
|
|
|||||||
| 09.10.2023, 10:40 | |||||||
Добавлено через 1 минуту когда все обо всех все знают, нет никакого разделения ответственности если поток А получил ссылку на поток Б, то когда Б уничтожится, А получит по ссылке AV чтобы этого не произошло, нужно еще один слой проверок монтировать
1
|
|||||||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
||
| 09.10.2023, 10:47 [ТС] | ||
|
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||
| 09.10.2023, 11:13 | ||
поток.WaitFor и дождался завершения потока, значит, у тебя есть на него ссылка и можешь сам сделать ему поток.Free.
0
|
||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
|
| 09.10.2023, 12:00 [ТС] | |
|
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
|
| 09.10.2023, 12:24 | |
|
Uefi220, скорее, для самобичевания. В таком случае поток может завершиться до вызова WaitFor, и тогда получим исключение в лучшем случае.
0
|
|
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
|||||||
| 09.10.2023, 19:33 [ТС] | |||||||
Боюсь просто не вся память будет освобождена ?
0
|
|||||||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||
| 09.10.2023, 19:57 | ||
|
0
|
||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||
| 09.10.2023, 20:27 | ||
|
И нужно понимать разницу - экземпляр TThread - это одно, а поток, который он создает - это другое. И память, которая освобождается при помощи thrs.free, это память выделенная под экземпляр (не под поток).
0
|
||
|
-11 / 9 / 1
Регистрация: 20.06.2021
Сообщений: 790
|
|||||||
| 09.10.2023, 21:53 [ТС] | |||||||
0
|
|||||||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
|
| 09.10.2023, 22:51 | |
|
0
|
|
|
|
|
| 09.10.2023, 23:38 | |
|
я теряю интерес. каждый уже по два раза написал, как НАДО
но мы уже который раз рассматриваем какие-то измышления в стиле "а вот если..."
1
|
|
| 09.10.2023, 23:38 | |
|
Ожидание завершения потоков Ожидание завершения работы потоков Как подождать ShellExecute? Как подождать завершения Task? Как подождать завершения потока Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|