Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

Process.WaitForExit (Método) (Int32)

Indica al componente Process que espere a que el proceso asociado termine durante el número de milisegundos especificado.

Espacio de nombres:  System.Diagnostics
Ensamblado:  System (en System.dll)

public bool WaitForExit(
	int milliseconds
)

Parámetros

milliseconds
Tipo: System.Int32
Cantidad de tiempo, en milisegundos, que se esperará hasta que termine el proceso asociado. El valor máximo es el valor mayor posible de un entero de 32 bits, que representa el infinito para el sistema operativo.

Valor devuelto

Tipo: System.Boolean
Es true si el proceso asociado ha terminado; de lo contrario, es false.

ExcepciónCondición
Win32Exception

No se ha podido obtener acceso al valor de espera.

SystemException

No se ha establecido ninguna propiedad Id del proceso y, por lo tanto, no existe una propiedad Handle a partir de la cual se pueda determinar la propiedad Id.

O bien

No hay ningún proceso asociado a este objeto Process.

O bien

Se está intentando llamar al método WaitForExit(Int32) para un proceso que se está ejecutando en un equipo remoto. Este método sólo está disponible para los procesos que se ejecuten en el equipo local.

La sobrecarga de WaitForExit(Int32) se utiliza para hacer que el subproceso actual espere a que el proceso asociado termine. Esta sobrecarga indica al componente Process que espere a que el proceso termine durante un período de tiempo definido. Si el proceso asociado no termina cuando ha transcurrido este intervalo de tiempo porque se ha negado la solicitud de terminación, se devuelve false al procedimiento que realiza la llamada. Puede especificar un número negativo (Infinite) para millisecondsy Process.WaitForExit(Int32) se comportará igual que la sobrecarga WaitForExit. Si pasa 0 (cero) al método, solo devuelve true si el proceso ya ha salido; de lo contrario, devuelve falseinmediatamente.

NotaNota

En .NET Framework versión 3.5 y versiones anteriores, si milliseconds era -1, la sobrecarga WaitForExit(Int32) esperaba MaxValue milisegundos (aproximadamente 24 días), no indefinidamente.

Cuando la salida estándar se haya redirigido a los controladores de eventos asincrónicos, puede ocurrir que el procesamiento de salida no se haya completado cuando este método devuelva un resultado. Para asegurarse que se haya completado el control de eventos asincrónico, llame a la sobrecarga de WaitForExit(), que no toma ningún parámetro después de recibir true de esta sobrecarga. Para ayudar a asegurar que el evento Exited se administra correctamente en aplicaciones de Windows Forms, establezca la propiedad SynchronizingObject.

Cuando un proceso asociado termina (el sistema operativo lo interrumpe de forma normal o anómala), el sistema almacena información administrativa sobre el proceso y regresa al componente que llamó al método WaitForExit(Int32). A continuación, el componente Process puede obtener acceso a la información, entre la que se incluye la propiedad ExitTime, utilizando la propiedad Handle para el proceso terminado.

Como el proceso asociado ha terminado, la propiedad Handle del componente ya no apunta a un recurso del proceso existente. En lugar de ello, se puede utilizar el identificador para obtener acceso a información sobre el recurso del proceso del sistema operativo. El sistema reconoce los identificadores de los procesos terminados que los componentes Process no hayan liberado y, por lo tanto, mantiene la información de las propiedades ExitTime y Handle en memoria hasta que el componente Process libera específicamente los recursos. Por esta razón, siempre que se llame al método Start para una instancia de Process, hay que llamar al método Close cuando el proceso asociado haya terminado y ya no se necesite su información administrativa. Close libera la memoria asignada al proceso terminado.

Para obtener un ejemplo sobre cómo usar el método WaitForExit, vea el ejemplo de código para la propiedad ExitCode.

.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

  • LinkDemand 

    para plena confianza del llamador inmediato. Este miembro no puede ser utilizado por código de confianza parcial.

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Mostrar: