![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Аватар, интересный вариант..
Сказал же что оба потока работают... Вообще 1 поток запускает программу и мониторит её.. 2 ведёт отсчёт времени, и как только отсчитает заданные n ms, извещает 1 поток и закрывается. 1 поток получив извещение от второго, сворачивает программу за которой он закреплён. Оба потока работают одновременно, но 2 поток зависит от первого(если первый закрывается, то второй уходит в накдаун тоже). Код:
Код:
Последний раз редактировалось Человек_Борща; 20.09.2011 в 22:19. |
![]() |
![]() |
![]() |
#12 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]()
А почему нельзя сделать отсчёт времени в первом потоки? Иногда проверять это время
|
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
потому, что в потоке 1 есть много других вещей которыми он должен заниматься.
А таймер(TTimer) в потоке повесить не возможно. |
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 15.02.2008
Сообщений: 621
|
![]()
Как вариант (на Form1 есть Edit1, и да я знаю, что так нельзя задавать значение Edit'у):
Код:
Когда и где создавать экземпляр класса TThread2 дело вкуса. И еще желательно почитать более подробно про TCriticalSection в хелпе — сдается мне я не слишком оптимально его применил... ну опять же повторюсь все зависит от конкретной задачи.. =)
Помог? Ну так нажми на весы!
![]() Последний раз редактировалось SNUPY; 21.09.2011 в 00:30. |
![]() |
![]() |
![]() |
#15 | |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]() Цитата:
Если так, можно использовать вместо ненужных потоков_2 простые таймеры: SetTimer/KillTimer. Уведомлять потоки_1 можно, как вам уже сказали, через массив переменных. А еще лучше сворачивать нужную программу прямо в обработчике таймера.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
|
|
![]() |
![]() |
![]() |
#16 | |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]() Цитата:
А если вы время в потоке отсчитываете с помощью таймера, то это печаль... |
|
![]() |
![]() |
![]() |
#17 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#18 | |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]() Цитата:
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
|
|
![]() |
![]() |
![]() |
#19 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]()
Таймер в потоке(TThread) возможен...
Вот, пожалуйста: Код:
|
![]() |
![]() |
![]() |
#20 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
при запуске отмечаем время (время запуска). Во время мониторинга определяем разницу (текущее время . время запуска). Как только >= то .... P.S. подразумевается что мониторинг есть некий циклический процесс (while ....). Вместо времени запуска можно сразу рассчитать Контрольное время( время завершения) и контролировать его наступление. Цитата:
Цитата:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 21.09.2011 в 14:40. |
|||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
событие в потоке | filin2323 | C# (си шарп) | 4 | 20.07.2011 22:14 |
Поток. Не получается создать поток. Выдает ошибки при запуске | bigory | Общие вопросы по Java, Java SE, Kotlin | 3 | 23.09.2010 00:40 |
Как приостаносить поток до события в другом потоке | Sionus | Помощь студентам | 2 | 30.03.2010 21:51 |
Как оповестить основной поток о каком-то событии в потоке (TThread)? | TwiX | Общие вопросы Delphi | 2 | 11.02.2010 02:57 |
TClientSocket в потоке | BlackOmen | Работа с сетью в Delphi | 8 | 27.04.2008 22:19 |