Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

Process.WaitForExit (Método)

Indica al componente Process que espere indefinidamente hasta que el proceso asociado termine.

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

public void WaitForExit()

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() 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() se utiliza para hacer que el subproceso actual espere a que el proceso asociado termine. Este método indica al componente Process que espere indefinidamente a que terminen el proceso y los controladores de evento. Esto puede hacer que una aplicación deje de responder. Por ejemplo, si se llama al método CloseMainWindow para obtener un proceso con una interfaz de usuario y se solicita al sistema operativo que termine el proceso asociado, dicha solicitud podría no controlarse si el proceso estuviera escrito de modo que nunca entrase en el bucle de mensajes.

NotaNota

En .NET Framework versión 3.5 y versiones anteriores, si WaitForExit() era -1, la sobrecarga MaxValue esperaba milisegundos (aproximadamente 24 días), no indefinidamente. Asimismo, las versiones anteriores no esperaron a que los controladores de eventos salga si se alcanzara el tiempo MaxValue completo.

Esta sobrecarga garantiza que se haya completado todo el procesamiento, incluso el control de eventos asincrónicos para la salida estándar redirigida. Debe utilizar esta sobrecarga tras una llamada a la sobrecarga de WaitForExit(Int32), cuando la salida estándar se haya redirigido a los controladores de eventos asincrónicos.

Cuando un proceso asociado termina (es decir, cuando 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(). 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 de cómo usar el método WaitForExit, vea la sección Comentarios de la página de referencia de la propiedad StandardError.

.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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft