Estados de subprocesos
Actualización: noviembre 2007
La propiedad ThreadState proporciona información acerca del estado de un subproceso. Ya que los subprocesos pueden estar en más de un estado en un momento determinado, el valor almacenado en ThreadState puede ser una combinación de los valores de la enumeración ThreadState. Por ejemplo, si un subproceso está bloqueado en una llamada a Wait y otro subproceso llama al método Abort en ese mismo subproceso, el subproceso estará en el estado WaitSleepJoin y en el estado AbortRequested al mismo tiempo.
Cambiar el estado de los subprocesos
Una vez se ha iniciado un subproceso, puede llamar a sus métodos para modificar su estado. Puede hacer que, por ejemplo, un subproceso se detenga un número fijo de milisegundos llamando a Thread.Sleep. El método Sleep toma como parámetro un tiempo de espera, que es el número de milisegundos que el subproceso permanece bloqueado.
Si se llama a Sleep con el argumento Infinite, el subproceso se detiene hasta que lo interrumpe otro subproceso que llama a Interrupt. El método Interrupt reactiva el subproceso de destino de cualquier estado de espera en el que pueda estar y genera una excepción.
También puede pausar un subproceso si llama a Suspend. Cuando un subproceso llama a Suspend en sí mismo, la llamada se bloquea hasta que lo reanuda otro subproceso con una llamada a Resume. Cuando un subproceso llama a Suspend en otro subproceso, la llamada no es de bloqueo y hace que el otro subproceso se pause. Llamar a Resume interrumpe el estado de suspensión de otro subproceso y provoca que se reanude la ejecución. A diferencia de Sleep, Suspend no detiene inmediatamente un subproceso; el subproceso suspendido no realiza una pausa hasta que Common Language Runtime determine que se ha llegado a un punto seguro.
El método Abort detiene un subproceso en ejecución generando una excepción ThreadAbortException que provoca la finalización del subproceso.
Vea Thread para obtener información detallada sobre estos métodos.
Vea también
Conceptos
Parámetros y valores devueltos para procedimientos multiproceso
Subprocesamiento múltiple con formularios y controles
Los delegados y el operador AddressOf