Вверх ↑
Ответов: 4621
Рейтинг: 746
#1: 2018-04-12 12:30:22 ЛС | профиль | цитата
Ты что, смеёшься? Какая там реализация! По методу doSleep - обычный sleep(), добавить верхнюю точку Delay (чтобы можно было в runtime указывать), изменить интерпретацию Delay с "микросекунд" на "миллисекунды". Остальные методы либо выбросить, либо оставить какой-то типа doSleepTick (задержка "на указанное колличество тиков"), и то если он реализован достаточно корректно согласно его описанию.

Ничего другого, кроме как "задержка исполнения потока на указанное количество миллисекунд" от компонента не требуется. И "пропуск сообщений" главного потока - это, так сказать, документированное поведение при вызове из главного потока. Чтобы этого избежать, компонент следует применять в параллельном потоке. В любом случае ничем в этом плане не отличается от текущей реализации. А если имеешь в виду, что события пропускались даже при применении в параллельном потоке - так проблема может быть как раз в перегрузке процессора, особенно критично для одноядерных процессоров.
карма: 26

0
Редактировалось 1 раз(а), последний 2018-04-12 12:30:40