2014-10-15 2 views
0

Я прошу об этом в общем смысле, не имея в виду конкретного языка.Планирование потоков Windows для работы с высокой точностью синхронизации?

То, что я хочу иметь, это иметь поток, выполняемый каждые 100 мс с высокой точностью. Кажется, что самая высокая точность, которую я могу получить, используя обычные потоки (в быстром тестовом приложении), составляет около 5 мс или около того. Для выполнения своей задачи поток занимает около 10 мс.

В принципе, есть ли способ попросить Windows запланировать мой поток с определенными задержками? (Насколько это возможно, я знаю, что это не операционная система реального времени)

+0

Является типом задачи, которую вы выполняете, для которой требуется 100 мс времени, или просто нужно * усреднить * это время в течение длительного времени, то есть это своего рода система, в которой вы можете измерять и настраивать тайминги, чтобы в целом, среднее значение получается хорошо, но отдельные тайминги могут быть немного меньше? –

+1

Возможно, [ожидаемый таймер] (http://msdn.microsoft.com/en-gb/library/windows/desktop/ms687008%28v=vs.85%29.aspx) стоит исследовать .... оставить поток работает и позволяет ему управлять своей частотой, ожидая объекта таймера. –

+0

Режимы, как правило, имеют право работать при тактовой частоте прерывания, по умолчанию 15,625 мс. Похоже, что какая-то программа на вашей машине уже возится с этим, если вы получаете 5 мс, это не редкость. Вы возитесь с ним, вызывая timeBeginPeriod(). –

ответ

1

В Windows, вероятно, лучше всего использовать multimedia timer. Это таймеры с высоким разрешением платформы.

Смежные вопросы