Я не эксперт по Windows, и написал только пару программ с графическим интерфейсом VB.Я управляю языком K & R C и многими ассемблерами, и имею 35+ лет опыта работы со встроенными системами и приложениями управления микропроцессорами.Так что я в основном аппаратный + электронщик.Я знаю, что прерывания, используемые в простом, неконтрольном программном обеспечении или в старом стиле DOS, больше не возможны в Windows по многим уважительным причинам.Я также знаю, что следует создавать специальные драйверы и создавать потоки, если в Windows будут использоваться защищенные прерывания.Итак, эксперты: я прошу прощения, если мой вопрос звучит слишком просто или наивно.Я "искал и исследовал", но не нашел простого решения. Неблокирующий таймер сна в C , Таймер для реализации функции тайм-аута , Используя таймеры , все используют графический интерфейс или C ++ или слишком сложны.
Мне нужно написать консольное приложение Windows32, которое реализует большой конечный автомат, и необходимо несколько таймеров тайм-аута связи вместе с некоторыми другими таймерами одновременных процессов, в диапазоне от 1 мс до нескольких десятков минут.Sleep () не будет работать, потому что автомат продолжает работать, ожидая, пока эти события сообщат об их завершении.Я нашел это решение CreateWaitableTimer с асинхронным вызовом процедуры .Должен ли этот код работать в K & R C и как будет выглядеть этот код?Если я прав, функция обратного вызова может содержать небольшой код, необходимый для таймеров, без зависания программы, как это делает Sleep ().Я использую MS Visual Studio 2012 в качестве компилятора C.Я был бы очень признателен за любые советы и помощь для очень простого решения C.