| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Короткая временная задержка (микросекунды) |
| Автор: neoarey 12.10.2011, 12:29 |
| Здравствуйте, люди добрые! Подскажите пожалуйста как реализовать временную задержку на 50 микросекунд. Буду очень признателен. Максимум что мне удалось добиться через API это 1 миллисекунда. |
| Автор: FallFan 14.10.2011, 20:14 |
| Наткнулся на статью, правда там не про vb6 и не про Windows. http://citforum.ru/operating_systems/linux/HOWTO/mini/IO-Port-Programming/x121.shtml Но смысл её примерно таков: даже если получиться, то точность минимальна, а проверить затруднительно. |
| Автор: Akina 14.10.2011, 22:46 |
| neoarey, глянь http://www.codeproject.com/KB/dotnet/MicroTimer.aspx , может, сможешь переписАть под VB6... |
| Автор: Ne1tr1n0 18.10.2011, 13:56 | ||
| 1. WaitableTimer можешь попробовать (CreateWaitableTimer, SetWaitableTimer, WaitForSingleObjectEx). В MSDN написано время принимает время в 100-наносекундных интервалах, следовательно теоретически теоретически может такую точность обеспечить. 2. NtDelayExecution. Однако это недокументированная функция, поэтому не факт что везде будет работать.
3. Ещё можно помутить с QueryPerfomanceCounter. 4. RDTSC. Правда это уже ассемблер. Однако, к сожалению на интервалах менее 1 мс, эти способы будут давать бОльшую или меньшую погрешность. В общем пробуйте, выбирайте, наиболее приемлемый на ваш взгляд способ. |