powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сделать паузу?
21 сообщений из 21, страница 1 из 1
Как сделать паузу?
    #39467905
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно сделать паузу на заданный интервал в программе. Пауза не должна блокировать поток. sleep не подходит.
MSDN ничего подходящего не выдает.(

"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39467918
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа какая? Если с обработчиком виндовых сообщений, то SetTimer()

Если просто поток, который что-то считает, то clock(), т.е. вычисляй время когда надо сработать и периодически проверяй что это время наступило.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39467956
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, неужели ничего нет уже готового к употреблению, типа sleep() или wait() в VB? В С# тоже есть неблокирующий, в Threading, насколько помню.
Пауза нужна для отладки, чтобы ограничить скорость обмена инфой. Потому хочется что-то простое, типа sleep. while() с выходом по времени, имхо, как-то не камильфо.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39467960
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA, что значит "не блокировать поток"? Либо эта пауза, либо нет!
Чем, по-твоему, поток должен заниматься в момент паузы?
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39467964
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAПауза нужна для отладки, чтобы ограничить скорость обмена инфой. Потому хочется что-то простое, типа sleep. while() с выходом по времени, имхо, как-то не камильфо.Сделай поток-шедулер, который будет пинать твой поток в заданные интервалы времени через SuspendThread/ResumeThread .
Какие проблемы?
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39467980
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, sleep останавливает всю программу, т.к. не позволяет работать др. потокам.
Тот же while() с выходом по времени делает паузу (задержку выполнения) только в одном потоке, никак не препятствуя работе остальных.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39467981
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAНужно сделать паузу на заданный интервал в программе. Пауза не должна блокировать поток


Такого просто не бывает. Либо пауза, либо не блокировать поток.

Что тогда вообще "Пауза" в твоём понимании ? Пауза в чём ?
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39467989
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, сделаю while() c выходом по времени.
Всем спасибо.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39467991
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBArdb_dev, sleep останавливает всю программу, т.к. не позволяет работать др. потокам.

Sleep() приостанавливает только текущий поток.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468000
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBADima T, неужели ничего нет уже готового к употреблению, типа sleep() или wait() в VB? В С# тоже есть неблокирующий, в Threading, насколько помню.
Поток или работает или не работает, т.е. заблокирован. Третьего не бывает.
Блокировать можно по разному: от Sleep() до ожидания освобождения объектов ядра (мутекс, эвент) WaitForSingleObject()
YUBAПауза нужна для отладки, чтобы ограничить скорость обмена инфой.
Ну и воткни Sleep(), раз делать все-равно ничего не надо.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468014
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv Sleep() приостанавливает только текущий поток.Вот спасибо
Код: plaintext
1.
Suspends the execution of the current thread until the time-out interval elapses.

Это и нужно.
С чего я себе в голову это взял.( Даже смотреть не стал, сразу полез в MSDN искать что-то другое.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468124
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, для полноты картины, а что у нас приостанавливает - блокирует текущий поток и, в тоже время, не дает переключаться на другие потоки?
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468134
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sleep() приостанавливает поток в котором вызван.

PS Почитай Рихтера , там все расписано.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468137
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAа что у нас приостанавливает - блокирует текущий поток и, в тоже время, не дает
переключаться на другие потоки?

Ничего. Нет такого функционала в многозадачных системах. (Старую кооперативную модель в
расчёт не берём.)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468138
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, это уже понятно. Я ошибочно был абсолютно уверен в обратном.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468146
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, спасибо.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468245
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAMasterZiv Sleep() приостанавливает только текущий поток.Вот спасибо
Код: plaintext
1.
Suspends the execution of the current thread until the time-out interval elapses.

Это и нужно.
С чего я себе в голову это взял.( Даже смотреть не стал, сразу полез в MSDN искать что-то другое.::рукалицо::
Sleep() - это функция WINAPI, описание которой, естественно, есть по приведенной ранее ссылке на страницу MSDN "Process and Thread Functions"/
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468250
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev, вы искренне полагаете, что кроме вас этого никто не знает?
"Вернейший способ быть обманутым, считать себя умнее других.(с) Иногда вспоминайте.)
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468251
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468252
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m_Sla, спасибо, уже со Sleep все сделано.
...
Рейтинг: 0 / 0
Как сделать паузу?
    #39468254
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBArdb_dev, вы искренне полагаете, что кроме вас этого никто не знает?
"Вернейший способ быть обманутым, считать себя умнее других.(с) Иногда вспоминайте.)Кто-то, конечно же, знает!
YUBAНужно сделать паузу на заданный интервал в программе. Пауза не должна блокировать поток. sleep не подходит .
MSDN ничего подходящего не выдает.(

"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сделать паузу?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]