|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||||||||||||||||
IdHTTP->Get в потоке и прогрессом29.08.2012, 17:39. Показов 9121. Ответов 45
Метки нет (Все метки)
Есть код:
Пример Event'ов для IdHTTP из формы
И пару вопросов по потокам:
0
|
||||||||||||||||
| 29.08.2012, 17:39 | |
|
Ответы с готовыми решениями:
45
Отправка вайла в потоке idhttp idhttp в потоке получает пустой txt файл |
|
|
|||||||
| 31.08.2012, 19:17 | |||||||
Если не ошибаюсь я просто блокировал кнопку пока чтоб ее нельзя было нажать повторно пока поток не завершится.
Добавлено через 2 минуты Определить состояние потока TThread
1
|
|||||||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
|||
| 31.08.2012, 19:53 [ТС] | |||
|
Вот Архангельский пишет:
0
|
|||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||
| 31.08.2012, 20:27 [ТС] | ||
|
Если поток не обнуляет указатель даже когда сам завершается, значит мне это и не надо...полагаю
Добавлено через 26 секунд Добавлено через 11 минут Тащем-то прочитав 5 страниц, где вы пытались переспорить друг друга , я сделал вывод, что надо отказаться от FreeOnTerminate и делать удаление и обнуление самому, тогда if (Thread) будет работать. Верно?Добавлено через 11 минут Нет не верно, я какую-то чушь сказал...потому что я не узнаю когда мне надо удалить вручную. Добавлено через 6 минут Я же могу банально сделать глобальный флаг (bool dead), которому поток по завершении будет присваивать тру и если этот флаг=тру, то поток умер... вот и решение! Не согласны?
0
|
||
|
|
||
| 31.08.2012, 20:53 | ||
|
Нет...
Разве что синхронизировав её... Нужно ли синхронизировать доступ к переменной из двух потоков? Добавлено через 4 минуты
1
|
||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||||||
| 31.08.2012, 21:30 [ТС] | ||||||
|
Даа, потоки оказались геморной темой
![]() В общем, спасибо, буду использовать пример "UI" в вашей переработке:
Но немного не понятно, когда он выдаст Terminated? Если будет TreminateThread без освобождения памяти?
0
|
||||||
|
|
|||
| 31.08.2012, 21:38 | |||
|
Ну TThread это лиш класс обвертка потока WinApi поэтому надо отталкиваться от сюда...
А вы собираетсь применять TerminateThread() ? -это грубый способ...
Добавлено через 2 минуты
0
|
|||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||||||
| 31.08.2012, 21:40 [ТС] | ||||||
|
Кстати, я сделал MyThread->Terminate(); и поток завершился, при том, что в потоке не было проверки на Terminated... выходит это не обязательно? 0_о тогда зачем Архангельский писал
0
|
||||||
|
|
|
| 31.08.2012, 21:44 | |
|
Для мягкого завершения... если вычисления циклические...
Terminate() устанавливает Terminated= true; поэтому цикл прекращается и поток заканчивается дойдя до условия while, "логически" завершенным.
0
|
|
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||||||||
| 31.08.2012, 21:46 [ТС] | ||||||||
|
Добавлено через 1 минуту Мой поток
0
|
||||||||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||||||
| 31.08.2012, 21:51 [ТС] | ||||||
|
Это если я вызываю Terminate сразу после запуска потока - он завершается.
0
|
||||||
|
|
||||||
| 31.08.2012, 21:57 | ||||||
|
Ну так может где-то есть еще внутри условие,еще до Execute();
0
|
||||||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||||||||||||||||
| 31.08.2012, 22:15 [ТС] | ||||||||||||||||
|
Проверка на состояние потока TThread
Код от "UI":
0
|
||||||||||||||||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||
| 31.08.2012, 22:29 [ТС] | ||
|
PS: Resume/Suspend не рекомендованы к использованию... http://docwiki.embarcadero.com... ead.Resume Для только что созданного потока Resume() надо заменять Start();
0
|
||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||
| 31.08.2012, 22:39 [ТС] | ||
|
Вместо него рекомендуют использовать TEvent и TMutex.
0
|
||
|
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
|
||
| 31.08.2012, 22:59 [ТС] | ||
|
Еще есть бесплатная библиотека OmniThreadLibrary, но она написана на Делфи и я не знаю канает ли она для C++. Судя по этому посту http://www.thedelphigeek.com/2... s-you.html автор ее компилировал для С++... Скачать можно тут http://code.google.com/p/omnithreadlibrary/
0
|
||
| 31.08.2012, 22:59 | |
|
Помогаю со студенческими работами здесь
40
Отправка картинки IdHTTP POST в потоке TMemoryStream IdHTTP и IdHTTP сервер: как отправить сообщение от сервера к клиенту?
Скачивание файла с прогрессом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|