информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 На GitHub пугают ложными предупреждениями... 
 Атака на пользователей больших... 
 Notepad++ полгода раздавал зараженные... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
если короче... :) 03.01.02 23:04  Число просмотров: 948
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
дохрена их может быть
раньше память на структуры данных закончится

хотя есть опасение, что в 9х реально используются 16 бит
но я не уверен
<programming>
А сколько может быть таймеров в NT,Win9x? 03.01.02 17:56  
Автор: y Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Везде в хелпах кричат что таймеры это ограниченный ресурс, но это все вроде для Win31? Ничего не нашел про сабж. Помогите пожайлуста.
А сколько может быть таймеров в NT,Win9x? 03.01.02 21:45  
Автор: LiNX Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1. Аппаратно 2 микросхемы по 3 канала (таймера), один канал и есть таймер (буквально), который дергает некоторое прерывание через определенный промежуток времени. (так в большинстве компьютеров, но есть компы, где десять (или более) таймеров - 2 микросхемы по 5 каналов - это промышленные компы)
2. В Win32 таймер это стандартное сообщение от ОС (а не обработка прерывания) с вытекающей отсюда блокировкой иных функций обработчиков-сообщений. Хотя сообщения таймера не ставятся в очередь, и если есть одно для данного таймера, то оно так и останется одним.
3. Схемы работы такова: ОС обрабатывает аппаратное прерывание от таймера, которое имеет достаточный приоритет (в силу сущности контроллера), чтобы тикать стабильно (но заткнуть при желании его можно) (допустим 18,2 раза в сек, хотя реально значение скорее всего иное), таймер (условно) будет тикать даже если систему подвесит какая-нибудь програ. ОС зарегистрировав ( SetTimer() ) таймер, посылает WM_TIMER с учетом запрошенного интервала (интервал в любом случае будет кратен 18,2 (или реальной частоте)), отсюда первый таймер обладает большим приоритетром чем остальные, а с учетом еще и приоритетов программ и того, что приоритет WM_TIMER ниже WN_PAINT (то есть окно сначала перерисуется и только потом получит WM_TIMER), получается, что серьезно страдает точность. В общем случае менее 100 милсек точность не обеспечивается.
4. Таймеры идентифицируются номером (целым числом), а поэтому можно просчитать, что таймеров у проги может быть 32 бита, но где-то слышал (не уверен), что реализуются таймеры в win32 через структуру по десять таймеров.
5. По идее даже 1 неправильно спрограммированный таймер заступорит прогу и систему (а NT и вовсе может похоронить с учетом ее приоритетной многозадачности), а если обработчиков будет больше, то соответсвенно ...
А сколько может быть таймеров в NT,Win9x? 04.01.02 10:13  
Автор: y Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо за ответ.
Собственно говоря, я имел в виду программные таймеры, которые создаются SetTimer(). Просто в старых описаниях говорится: проверяйте значение возврата а то в Win3.0 их может быть создано только 16 на всю систему. Я так и думал что в Win32 их может быть гораздо больше. А где написано, что если есть одно сообщение для таймера то оно одно и останется?
Круглински Д. "VC6" 2001 - c 197.; Рихтер Д. "Windows для профессионалов" - 1997 - c. 329 04.01.02 17:48  
Автор: LiNX Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Сообщение (обработчик) WM_TIMER одно, но у него параметр "индекс таймера" - с этой точки зрения таймер вообще один. Но реализуется в win32 таймер структурно - если ты запрашиваешь одну очередь таймера, то сразу формируется структура из десяти очередей (см выше), а следующая стуктура будет создана при запросе одиннадцатого таймера - с этой точки зрения таймеров десять. А поскольку параметр для запроса таймера 32 битный - то соответсвенно таймеров может быть создано 32 бита - и с этой точки зрения таймеров 32 бита. Все это разумеется не говорит о том, что всегда может быть создано даже две очереди - неоходимо проверять возвращаемое занчение
[Win32] А есть ли какой-нить выигрыш в исп. TimerProc вместо обработчика окна.? 09.01.02 08:29  
Автор: Xan Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Нет 09.01.02 20:42  
Автор: LiNX Статус: Незарегистрированный пользователь
<"чистая" ссылка>
По идее должно работать резвее, однако не слышал, чтобы об этом кто-нибудь рапортовал.
если короче... :) 03.01.02 23:04  
Автор: ggg <ggg> Статус: Elderman
<"чистая" ссылка>
дохрена их может быть
раньше память на структуры данных закончится

хотя есть опасение, что в 9х реально используются 16 бит
но я не уверен
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach