![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Подскажите, можно ли сделать так, чтобы функция вызывалась, скажем, каждые 2 мс, но при этом проц не грузился на «все 100»?
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
ищи по форуму.
заранее могу сказать -- никак не получится -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Я уже поискал. Нашел только то, что не получится. Эээ... Винда, блин.
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
А чем sleep и for неустраивают?
|
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Оно сейчас так и работает. Ситуация похожа на ту, которую ты говорил поискать. У меня в другом потоке графики рисуются. Устройство работает через COM и USB. С USB все в порядке, но COM все вешает. Сигнальные линии в COM не задействованы, событие повесить не могу. Посему хочу найти именно такой способ. К тому же на будущее полезно.
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
Fixin, этот способ не подходит еще по одной причине -- Sleep имеет дискретность в 10 мс
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
VectorMan |
|
|||
Antihero ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 9.4.2006 Репутация: 1 Всего: 4 |
а WaitForSingleObject не подходит? ещё можно заюзать timeSetEvent
|
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
WaitForSingleObject не к чему прикрутить, а про timeSetEvent я не знал, попробую...
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
VectorMan |
|
||||
Antihero ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 9.4.2006 Репутация: 1 Всего: 4 |
а так?
хотя наверное у этой функции тоже есть какие то ограничения по точности |
||||
|
|||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
есть. причем полностью аналогичные ограничениям Sleep' а
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Это ограничение существует из-за ограничений самой винды (ее архитектуры), можно только искуственные методы, с которыми я не знаком
|
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Она почему-то тормозит. Очень сильно тормозит. Может я что делаю не так?
Это сообщение отредактировал(а) zhgutov - 11.4.2006, 15:40 --------------------
Приполз. Увидел. Укусил. |
|||
|
||||
Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Создание объекта и преобразование тпов - не быстрая операция
|
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Объект там не создается и тип не преобразуется (unsigned -> void*). Временной интервал — 50 мс. Пробовал разные значения интервала и точности. Все-равно тормозит. Параллельно работает поток отображения всяких там графиков, проц грузится на 15 %, но тормозит (50 мс -> ~0.5 с)!
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
VectorMan |
|
|||
Antihero ![]() Профиль Группа: Участник Сообщений: 110 Регистрация: 9.4.2006 Репутация: 1 Всего: 4 |
в MSDN настоятельно рекомендуют перед использованием функций семейства time* устанавливать точность таймера через timeBeginPeriod (и соответственно после окончания работы использовать timeEndPeriod) Это сообщение отредактировал(а) VectorMan - 11.4.2006, 15:58 |
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
И это делаю, результат тот же.
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Все, нашел! Работает корректно, алгоритм надо было изменить.
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
Олег_Игоревич |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.1.2005 Репутация: нет Всего: нет |
Необходимо разработать драйвер.
Муторно но работать будет на 100%. --------------------
Используй жизнь ПО ПОЛНОЙ !!! |
|||
|
||||
takedo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: -1 Всего: 3 |
zhgutov, так непонятно, неужели получилось вызывать таймер с периодом 2 миллисекунды в не RealTime операционке? Если да, то надо это обязательно в фак запихать.
-------------------- я не гольфист - я хоккеист |
|||
|
||||
zhgutov |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Я не измерял. Могу провести исследование на эту тему... Мне необходимо было сделать таймер с периодом 50 мс, а про 2 мс я написал для того, чтобы найти здесь такой способ, не более. Если б написал как есть, подозреваю, что меня бы послали в поиск. Посему так. О результатах скоро напишу.
--------------------
Приполз. Увидел. Укусил. |
|||
|
||||
zhgutov |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 14.12.2004 Репутация: 1 Всего: 2 |
Вот, можете сами проверить, построить распределение вероятностей... Вроде компилируется.
«Нашлепка» для таймера:
Реализация «нашлепки» для таймера:
timer > x из командной строки пишет у меня в x следующее:
А потом, при желании, это можно запихать в фак. Это сообщение отредактировал(а) zhgutov - 26.4.2006, 14:55 --------------------
Приполз. Увидел. Укусил. |
||||||||
|
|||||||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |