нужен таймер с интервалом меньше 1ms

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

нужен таймер с интервалом меньше 1ms

Сообщение Nord777 » 01.12.2006 (Пт) 23:38

Всем привет.
нужен таймер который позволил бы задать интервал меньше 1ms.
По истечении указанного периода должна вызываться Callback-функция или событие.
Существует что нибудь подобное в .Net ?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 02.12.2006 (Сб) 7:22

Готовых классов нет точно, однако какое-то извращение я на форуме видел... Можно поискать. Есть правда одно сомнение насчет того что интервалы меньше 1мс Windows точно не замеряет.

З.Ы. Для каких целей понадобился тайер с такой точностью?
Весь мир матрица, а мы в нем потоки байтов!

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 02.12.2006 (Сб) 12:12

Начинаю потихоньку осваивать XNA. Задержки менее 1 ms нужны для организации скорости движения спрайта. (Сам спрайт будет выводиться со смещением 1 пиксель. Тем самым хочу достичь максимальной плавности движения). Я задавал тотже самый вопрос на форуме XNADev, не знаю, может быть в XNA есть встроенные методы, но ответа пока не получил.
ЗЫ: во времена DOS у меня получалось(если не изменяет память) программировать интервальный таймер на получение таких задержек. Но это было о-о-очень давно.
Последний раз редактировалось Nord777 02.12.2006 (Сб) 12:16, всего редактировалось 1 раз.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.12.2006 (Сб) 12:14

Подход неверен изначально.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 02.12.2006 (Сб) 12:17

[quote]Подход неверен изначально[/quote]
Почему?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 02.12.2006 (Сб) 13:52

Nord777
Задержка перед переключение на твой поток может быть больше 1 ms, так что даже Sleep(1) может задержать прогу больше чем на 1 ms.
Вообще, в пользовательском редиме многозадачной ОС глупо говорить про интервалы меньшие 1мс.
Есть правда одно сомнение насчет того что интервалы меньше 1мс Windows точно не замеряет.
Например KeDelayExecutionThread позволяет задерживать поток с точностью до 100 нс(10000 доля милисекунды). Но точность такого подхода опять же невелика.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.12.2006 (Сб) 14:06

Nord777 писал(а):
Подход неверен изначально

Почему?

Потому что http://bbs.vbstreets.ru/viewtopic.php?t=19675 и http://bbs.vbstreets.ru/viewtopic.php?t=16651.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 04.12.2006 (Пн) 23:08

Например KeDelayExecutionThread позволяет задерживать поток с точностью до 100 нс

В MSDN она описывается в разделе Windows DDK.
Ты уверен что я могу ее использовать не написав драйвер?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 04.12.2006 (Пн) 23:09

Nord777
Уверен, что нельзя.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.12.2006 (Вт) 6:42

А откуда уверенность, что эта функция позволяет выполнять задержку с точностью до микросекунд?
Изображение


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 115

    TopList