|
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
|
|
Интересный вопрос01.05.2009, 00:58. Показов 1700. Ответов 12
Метки нет (Все метки)
Ув. программисты,сегодня с преподователем в университете состоялся интресеный диалог.в ходе которого он мне заявил точ не одна функция программы не будет выполнятся пока в таймере работает условие и оно еще не пройдено.я могу что то не понимать но я так понимаю он хотел сказать что из за условия в таймере программа якобы находится в стадии зависания.но это же бред.Мог бы кто нибудь это более менее разьяснить?Или же пора менять университет?)
0
|
|
| 01.05.2009, 00:58 | |
|
Ответы с готовыми решениями:
12
Интересный вопрос! Интересный вопрос по тренарному оператору (?:) Интересный баг FindFirstFile/FindNextFile при работе с маской |
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
||||||
| 01.05.2009, 01:14 | ||||||
|
скорее всего, преподователь имел ввиду, что если в таймере, выполняется некий цикл, вычисления, да и прочий код, программа, в этот момент не сможет отреагировать на систему. т.е. например, если в таймере вы напишете
0
|
||||||
|
3189 / 869 / 39
Регистрация: 29.12.2008
Сообщений: 951
|
|
| 01.05.2009, 11:10 | |
|
Учитель наверно не совсем прав. Если я не ошибаюсь, таймер запускается программой в отдельном потоке. Если там цикл, то он работает до конца, пока не завершится, а др. потоки программы ждут и не работают. А с другой стороны, что мешает заставить поток таймера "делиться" системным временем и ресурсами с другими потоками? Это делается с помощью функции ProcessMessages() (наведи справку по нему.). Её вставляешь внутрь цикла в таймере (даже внутрь бесконечного). И при этом всё в программе будет работать как положено, параллельно с этим циклом
![]() Т.е. учитель, конечно прав про своеобразное зависание, но при этом его нетрудно избежать описанным трюком.
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 01.05.2009, 11:26 | |
|
Таймер не запускается в отдельном потоке. Он использует апишные SetTimer/KillTimer, а OnTimer вызывается, когда приходит сообщение WM_TIMER с соответствующими параметрами. Поэтому в цикле без ProcessMessages или ей подобным новые сообщения не будут обрабатываться.
Сейчас посмотрел в Delphi этот класс: там для каждого таймера отдельное невидимое окно создаётся.
0
|
|
|
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
|
|
| 01.05.2009, 12:09 [ТС] | |
|
Просто мне немножко не понятно как программа может зависнуть на цикле в таймере.если каждый другой элемент программы имеет свои процедуры которые вызываются действиями с обьектами.Они работают парралельно.ведь у меня в таймере их который работает постоянно и программа не виснет.все другие процедуры свободно работают.Я ведь могу запустить два цикла в двух таймерах и они параллельно будут работать.а не так что один из них будет выполнять свой цикл,а другой ничего делать не будет.
0
|
|
|
1857 / 714 / 55
Регистрация: 11.12.2008
Сообщений: 1,019
|
|
| 01.05.2009, 12:48 | |
|
Они будут исполнятся поочереди. Виндосовское приложение работает на основе сообщений. Пришло сообщение "ТАЙМЕР" выполняем таймер, сообщение "НАЖАЛИ МЫШКОЙ ТУДА-ТО ТУДА-ТО", выполняем соответствующий обработчик. А так как это все делается достаточно быстро, то кажется, что все работает одновременно.
0
|
|
|
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
|
|
| 01.05.2009, 14:00 [ТС] | |
|
просто я делаю программу будильник и вот в чем суть я включаю будильник и таймер работает до тех пор пока не совпадет время пользователя и время системы.но я могу пока еще время не совпало вызывать нажатием на кнопки другие процедуры.такие процедуры как открытие сайта при нажатии на кнопку
0
|
|
|
|
|
| 02.05.2009, 21:01 | |
|
кароче не ломай голову если у тя работает то знач работает, и будет работать нормально сам проверял, в остальных случаях работает кроме бесконечного цикла, но кому придёт в голову запхать бесконечный цикл в таймер?)) Ты чё у Чашина спрашивал?..Чашин лопух..))он даж подсказать ничё толкового не может
0
|
|
|
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
| 02.05.2009, 21:22 | |
|
KoFeMaH, фишка в том, что управлении возвращается программе, после выполнения итерации таймера. т.е. если таймер стоит на 600000мс (1 мин) например, код твой, выполнится за несколько сотен милисекунд.... оставшееся время, идет на обработку программы. как бы вот так.
0
|
|
|
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
|
|
| 04.05.2009, 09:39 [ТС] | |
|
Я это понимаю.но у меня в таймере засунуто условие что он будет повторять эту проверку условия пока оно не совпадет.а так как это программа будильник то он может повторять проверку этого условия несколько часов,пока не совпадет.но программа работает в это время.я могу вызвать любое событие без проблем
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
| 04.05.2009, 09:49 | |
|
KoFeMaH, ты через определенные промежутки времени в таймере проверяешь текущее время и если это время срабатывания будильника - включаешь звонок\сообщение?
0
|
|
|
61 / 60 / 9
Регистрация: 13.01.2009
Сообщений: 322
|
|
| 04.05.2009, 10:58 | |
|
Код в студию, нипойму о чем речь
0
|
|
|
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
|
||||||||
| 04.05.2009, 16:39 [ТС] | ||||||||
0
|
||||||||
| 04.05.2009, 16:39 | |
|
Помогаю со студенческими работами здесь
13
Имеется интересный небольшой код на Дельфи. Надо переписать его на С++. очень интересный баг Интересный пример оптимизации
Интересный вопрос Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|