Как грамотно притормозить процес ...

Discussion in 'WASM.BEGINNERS' started by _sheva740, Feb 12, 2008.

  1. _sheva740

    _sheva740 New Member

    Blog Posts:
    0
    Пишу программку, которая раз в час опрашивает POP сервера.

    Вопрос: как грамотно затормозить процес, так чтобы он замер и не
    отнимать ресурс у остальных.

    Что приходит в голову? :

    - Sleep()
    - Писать что-то типа планировщика, который сам запустит и закроет
    - Оформить все как тред и его тормозить на час
    - понижать привилегии процесса или треда не знаю

    В каком направлении двигаться?
     
  2. infern0

    infern0 New Member

    Blog Posts:
    0
     
  3. steelfactor

    steelfactor New Member

    Blog Posts:
    0
    ???
    При создании процесса в твоей проге основной поток (через вызов ZwCreateThread/ZwResumeThread) создастся по-любому. Вот с этим потоком и работай, Sleep() его усыпит на определенное время.
     
  4. _sheva740

    _sheva740 New Member

    Blog Posts:
    0
    infern0
    steelfactor
    Спасибо.
     
  5. EvilPhreak

    EvilPhreak New Member

    Blog Posts:
    0
    _sheva740
    Если будешь юзать Sleep(), то поток не будет отнимать и долю времени, т.к. в этом случае планировщик просто не дает этому потоку время.
     
  6. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    EvilPhreak
    На самом деле при ожидании с разрешенными APC все-таки управление ингда дается, но до пользовательского кода оно не доходит, крутясь в цикле ожидания внутри KeDelayExecution/KeWaitForSingleObject/etc...
     
  7. EvilPhreak

    EvilPhreak New Member

    Blog Posts:
    0
    Great
    Спасибо, очень интересно.