Я пытаюсь передать некоторый код linux, который использует nanosleep()
и get_clocktime()
для окон. Насколько я читал, на самом деле не так много таймеров производительности на окнах, и нет реальных функций сна, кроме Sleep()
. Я нашел QueryPerformanceCounter
и QueryPerformanceFrequency
на окнах, но как бы настроить те, которые будут использоваться с функцией быстрого сна. Код, в котором я пытаюсь порт расположен на этом StackOverflow сообщении: https://stackoverflow.com/a/13559213/1161270Таймеры и сон на окнах
В целом я пытаюсь порта код Linux для окон, которые используют nanosleep()
, get_clocktime()
и struct timespec
, но, кажется, нет никакого реальных равнозначно. Я также открыт для других идей о том, как добавить задержки дроссельной заслонки. Я прочитал функции PdhGetFormattedCounterArray()
, и у меня есть рабочий код для отслеживания выходной пропускной способности компьютера в байтах, но я не уверен, как использовать эти данные для создания задержки для дроссельной обратной передачи данных на определенную скорость kb/s , и предпочли бы использовать другой метод, предоставленный в связанном сообщении.
Спасибо за ваше время.
Пингуется к NUL за задержку времени? – ProfessionalAmateur
Я ищу высокочастотную синхронизацию/спящее решение. ping не будет работать, ведь 'Sleep()', который вычисляется в миллисекундах, не работает для того, что я пытаюсь выполнить. –
Вы пробовали использовать Сон? Если вы не работаете с гигабитной сетью, миллисекунда составляет менее дюжины пакетов нормального размера, поэтому я не уверен, что вам действительно нужно ультратонкое разрешение. В конце концов, у вас нет такого большого контроля, когда пакеты отправляются фактически, они могут быть забуферированы и отправлены группами. Другим вариантом будет ожидание - ожидание, используя счетчики производительности для разработки прошедшего времени, но вы по-прежнему будете иметь неустойчивые промежутки, когда ваш поток отключается. –