Share via


Suspender la ejecución de subprocesos

Un subproceso puede suspender y reanudar la ejecución de otro subproceso. Mientras se suspende un subproceso, no está programado para el tiempo en el procesador.

Si un subproceso se crea en un estado suspendido (con la marca CREATE_SUSPENDED ), no comienza a ejecutarse hasta que otro subproceso llama a la función ResumeThread con un identificador al subproceso suspendido. Esto puede ser útil para inicializar el estado del subproceso antes de que comience a ejecutarse. Suspender un subproceso durante la creación puede ser útil para la sincronización única, ya que esto garantiza que el subproceso suspendido ejecutará el punto inicial de su código al llamar a ResumeThread.

La función SuspendThread no está pensada para usarse para la sincronización de subprocesos porque no controla el punto del código en el que se suspende la ejecución del subproceso. Esta función está diseñada principalmente para su uso por parte de los depuradores.

Un subproceso puede producir temporalmente su ejecución para un intervalo especificado llamando a las funciones Sleep o SleepEx Esto es útil especialmente en los casos en los que el subproceso responde a la interacción del usuario, ya que puede retrasar la ejecución lo suficiente como para permitir a los usuarios observar los resultados de sus acciones. Durante el intervalo de suspensión, el subproceso no está programado para el tiempo en el procesador.

La función SwitchToThread es similar a Sleep y SleepEx, salvo que no se puede especificar el intervalo. SwitchToThread permite que el subproceso desactive su segmento de tiempo.