Здравствуйте, Vis, Вы писали:
Vis>Покртитикуйте следующее решение.
Vis>Нужен точный таймер, чтобы срабатывал раз в 5мс, допустим с точностьб +- 0,1мс.
Vis>Не придумал лучшего, чем сзздать дополнительный тред и из него Sleep-ом отмерять прмежутов времени и дёргать Invoke-ом событие.
Vis>Чреват ли этот способ какими-то скрытыми граблями?
Ну грабли тут одни и большие — виндовс не являются ОС реального времени и никто гарантировать приход события вовремя не может. Под точканет ситуация еще более осложняется наличием сборщика мусора. Такой точный таймер ИМХО недостижим под виндовс.
Если делать все-таки будете, то лучше использовать не Invoke — а какой либо другой способ межпотоковой синхронизации, например AutoResetEvent или что-то типа того. Invoke работает через посылку сообщения через виндовую очередь, что точно добавит дополнительную задержку.
Помнится под голым winapi самую большую точность обеспечивали мультимедийные таймеры -см timeSetEvent
Шурыгин Сергей
"Не следует преумножать сущности сверх необходимости" (с) Оккам