![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| balda |
|
|||
|
Unregistered |
Таймер можно конечно установить на любой промежуток, но вызываться фактически чаще чем 18 раз в минуту он не будет
Как обойти это ограничение. Заранее Большое спасибо всем. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
чаще чем 18 раз в секунду я имел ввиду
|
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Только примерно подстроить процессор.
--------------------
|
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 1 Всего: 34 |
ну а если сделать тред
а туда Sleep,20 -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
-------------------- Да. Именно так. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
может GetTickCount() попробовать?
|
|||
|
||||
| Гость_Ridat |
|
|||
|
Unregistered |
WINBASE:
UINT SetTimer( HWND hWnd, // handle of window for timer messages UINT nIDEvent, // timer identifier UINT uElapse, // time-out value TIMERPROC lpTimerFunc // address of timer procedure ); WINMFC: CWnd::SetTimer UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)(HWND, UINT, UINT, DWORD) ); CWindow::SetTimer UINT SetTimer( UINT nIDEvent, UINT nElapse ) HWnd – дескриптор окна nIDEvent – например 1 uElapse – (в миллисекундах) 20 LpTimerFunc – NULL |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
опрашивать GetTickCount() как я понимаю?
Но это загрузит проц на 100% Не ну анимация же както выводится, и не грузит 100% процессор А там кадры точно чаще 18 раз с сек. Как это делается? |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Гость_Ridat НЕ ВЫДЕТ!
|
|||
|
||||
| OlegsDP |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 25.2.2004 Репутация: нет Всего: 1 |
Это сообщение отредактировал(а) OlegsDP - 26.2.2004, 15:25 |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
Откуда такие утверждения? Проц был и создан для того чтобы постоянно работать OlegsDP У тебя получается вечный цикл У меня весь софт по такому принципу работает, но к сожалению выложить его не могу. Почему объяснять не буду. Не мое творение. Одним словом - коммерция |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Это ты про дос что-ли? Да если бы небыло ограничения на занятость проца то и вопрса такого небыло-бы. Там все элементарно. Насчет Слипа попробую но не уверен что это будет равномерно. |
|||
|
||||
| Ridat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 21.6.2003 Репутация: нет Всего: нет |
Я не совсем понимаю таймер нужен "фактический" или "формальный", так как во втором случае в Sys Win(X) (чтобы работала на каждой машине одинаково) добиться нельзя.
|
|||
|
||||
| Ridat |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 21.6.2003 Репутация: нет Всего: нет |
Sorry? В первом случае.
|
|||
|
||||
| OlegsDP |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 25.2.2004 Репутация: нет Всего: 1 |
bel_nikita>У тебя получается вечный цикл
Во-первых: подозреваю, что я гораздо старше Вас. Во-вторых: обращайтесь к любому незнакомому Вам человеку на Вы (а мы с Вами не знакомы). В-третьих: Учитесь читать текст программы. В том числе коментарии:
bel_nikita>Логично было-бы сделать отдельную функцию ( без for(;;)! ) и вызывать ее каждый раз в главном цикле программы. bel_nikita>И Sleep надобы убрать. Sleep как я знаю переключает потоки. Совет преждний: учитесь читать текст программы. В том числе коментарии:
Представленный мною фрагмент кода (отлаженный) представляет собой самоподстраивающийся цикл, стремяшийся выполнять полезный код 50 раз в секунду. Изменяя значение переменной period можно менять частоту цикла. Максимальная частота цикла определяется длительностью выполнения полезного кода /Zdes' tvorim, chto hotim/. Функция Sleep использована, чтобы эффективно использовать ресурс процессора, отдавая управление другим тредам и процессам на "лишнее" для нас время. При желании, цикл можно использовать как главный цикл программы, а можно оформить в виде отдельной функции, куда как параметр передавать период и указатель на CALLBACK-функцию. |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |