![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Выполняю некое действие в потоке. Необходимо, что бы пользователь ввел некоторые данные, что бы был достигнут нужный результат.
Как приостановить поток до ввода данных, а после ввода - продолжить? |
#2
|
||||
|
||||
![]() Suspend, Resume.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Можно немного подробнее?
К примеру, создал я поток Код:
POTOK=class(TThread) Private Protected Procedure Execute; override; Public Constructor Create(CreateSuspended: boolean); end; Нажав заветную комбинацию клавиш я получил - Код:
constructor POTOK.Create(CreateSuspended: boolean); begin inherited Create(CreateSuspended); end; Ну и сам код потока Код:
procedure POTOK.Execute; begin //исполняемый код end; Запускаю поток - Код:
POTOK.Create(false); На форме у меня 2 кнопки. Поток запускаю, необходимо ввести данные, ввод осуществляется посредством нажатия второй кнопки, поток продолжается. Как это реализовать с помощью Suspend, Resume ? Последний раз редактировалось Zo_Omer, 08.08.2012 в 10:03. |
#4
|
|||
|
|||
![]() Разобрался сам.
В потоке создал бесконечный цикл while b do //b - bool; После ввода данных изменял b на false, цикл завершался, поток продолжался. Все переменные в таком случае должны быть глобальные |
#5
|
|||
|
|||
![]() интересно, а запустить поток после ввода данных почему нельзя было?
|
#6
|
||||
|
||||
![]() Цитата:
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
![]() Дело в том, что я потоки толком не изучал... И пока что так сделать мне будет гораздо удобнее. Да и результат в принципе одинаковый.
|
#8
|
|||
|
|||
![]() всё таки не интересно, что поток делает перед циклом while do такого, что нельзя было само создание потока произвести, после того, когда данные уже введены пользователем...
|