Дед Нечипор
Дед Нечипор Ответы на вопросы
27 октября 2022, 17:22

Вопрос к программистам по WinAPI. Sleep(xx) или WaitForSingleObject?

Вопрос к программистам по WinAPI. Sleep(xx) или WaitForSingleObject?
9 Комментариев
  • bstone
    27 октября 2022, 17:40
    Sleep() эффективнее, т.к. он дополнительно понижает приоритет вызывающего потока. WaitForSingleObject() этого не делает.
      • Value
        28 октября 2022, 17:06
        Дед Нечипор, если поток ждет (ничего не делает), то, наверное, у него в любом случае будет низкий приоритет. Тут, скорее, вопрос в дизайне: если поток не ждет определенного события, то чего он, собственно, ждет? Может, когда истечет таймер будет не лучший момент для исполнения с точки зрения загруженности процессора. Может, лучше изначально исполняться с заведомо низким приоритетом или подождать пока более важные «разрешат»?
      • bstone
        28 октября 2022, 17:33
        Дед Нечипор, Sleep() понижает приоритет потока до базового и так его и оставляет. Т.е. если менялся динамический приоритет потока для priority boost, то его после спячки надо будет опять поднимать по необходимости.
  • Denis
    27 октября 2022, 18:05
    Это все не работает на малоядерных процессорах под виндовс, типичный слип будет 2-6 миллисекунд при переключении контекста процесса. На него и можно закладываться.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн