Sdílet prostřednictvím


Pozastavení spouštění vláken

Vlákno může pozastavit a obnovit spuštění jiného vlákna. Zatímco je vlákno pozastavené, není mu přidělen čas na procesoru.

Pokud je vlákno vytvořeno v pozastaveném stavu (s příznakem CREATE_SUSPENDED), nezačne se spouštět, dokud jiné vlákno volá ResumeThread funkce s popisovačem pozastaveného vlákna. To může být užitečné pro inicializaci stavu vlákna před zahájením spuštění. Pozastavení vlákna při vytváření může být užitečné pro jednorázovou synchronizaci, protože tím zajistíte, že pozastavené vlákno při volání ResumeThreadspustí výchozí bod jeho kódu .

Funkce SuspendThread není určena k použití pro synchronizaci vláken, protože neřídí bod v kódu, na kterém je pozastaveno provádění vlákna. Tato funkce je primárně určena pro použití ladicími programy.

Vlákno může dočasně přerušit své spuštění na zadaný interval voláním funkcí Sleep nebo SleepEx. To je užitečné zejména v případech, kdy vlákno reaguje na interakci uživatele, protože může zpozdit provádění dostatečně dlouho, aby uživatelé mohli sledovat výsledky svých akcí. Během intervalu spánku není vlákno plánováno ke zpracování na procesoru.

Funkce SwitchToThread je podobná funkci Sleep a SleepExs tím rozdílem, že interval nelze zadat. SwitchToThread umožňuje vláknu vzdát se časového úseku.