|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.01.2017, 12:12 | #11 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
При уничтожении потока все его данные тоже уничтожаются. Поэтому самое просто кто породил потоки тот ждет пока они отработают, а затем собирает результат с них и уже в конце уничтожает их. Вариант второй поток перед тем как уничтожиться сбрасывает в глобальный объект свой результат.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 27.01.2017 в 12:33. |
|
27.01.2017, 12:45 | #12 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Это как? А программа что в это время делает? Висит? Если поток вызвался из основного кода.
Третий вариант |
27.01.2017, 14:38 | #13 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Как по мне OnTerminate бесполезное свойство - как собаке 5 нога. Вроде не мешает, а помогать не помогает
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
27.01.2017, 15:11 | #14 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Цитата:
как отработали инициируем нашу MyTthreadFinish(это делает сам поток) и мы(уже форма) "скачиваем" ИЗ потока результаты (выводим). (если у потока нет FreeOnTerminate то тут же можно заняться уничтожением).
программа — запись алгоритма на языке понятном транслятору
|
||
27.01.2017, 15:17 | #15 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
"события, CallBack и сообщениях."... Что-то всё как-то уже слишком усложняется... Мне это не понятно на данном этапе развития.
evg_m, я попробовал, у меня Дельфи стал ругаться на несоответствие типов в присваивании процедур. А к нему можно присвоить процедуру с параметрами? |
27.01.2017, 15:31 | #16 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 27.01.2017 в 15:34. |
|
27.01.2017, 15:44 | #17 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Вам надо сообщить форме, что поток завершился (и передать результат). Самые простые варианты — сделать callback или событие вызываемое при завершении. callback это просто: в форме есть функция, при запуске потока ему передается указатель на нее и при завершении он ее вызывает. Я ж показал полный пример http://www.programmersforum.ru/showt...98#post1660776 Событие это примерно тоже самое, только мне лень вспоминать как они создаются в Дельфи.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 27.01.2017 в 15:51. |
|
27.01.2017, 16:54 | #18 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Alex11223, спасибо за пример
Кстати, забыл ответить: Proc1 нужна синхронизация исходя из предположения Pavia по поводу веба, но, исходя из Ваших слов, можно и убрать По поводу того что сложного... Например, непонятно, относится ли PrinterThreadCallback к обязательной или к необязательной части CallBack; с FCallbackProc, TCallbackProc и CallbackProc вообще путаница полная... FCallbackProc зачем, например? Спасибо за дополнительное пояснение - чуть понятнее стало, но разобраться не помогло |
27.01.2017, 17:50 | #19 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
части чего?
В моем примере все параметры потока (объекта) устанавливаются через его конструктор (Create). Это указатель на процедуру. Надо ж его где-то хранить чтоб вызвать потом. TCallbackProc просто описание процедуры (какие у нее параметры и т.п.). Нельзя же передать что попало куда попало, Дельфи статически типизированный язык.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 27.01.2017 в 17:55. |
28.01.2017, 16:04 | #20 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Вот проект с Wininit, в этом проекте все делает unit UHTTPS написан в потоке с CallBack, В этом проекте есть многое что вас заинтересует, работа с потоком синхронность возврата вызовов, и запрос по WinInit c докачкой файла, код может работать в консольной программе в нем нет работы через объекты.
WinInit видел в одном из ваших постов кое что доделал Более подробно в проекте Последний раз редактировалось Aliens_wolfs; 28.01.2017 в 17:22. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как можно заменять "запятая" на "Enter" | Silent-cry | Microsoft Office Word | 4 | 26.01.2018 12:03 |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |
Навеяно предыдущим топиком о Буфере обмена. Можно ли перехватить события "приКопированииВбуфер" и "приВставкеИзБуфера"? | DBEER | Microsoft Office Word | 9 | 06.03.2016 23:45 |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |