Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Process.HasExited (Propiedad)

Obtiene un valor que indica si el proceso asociado ha finalizado.

Espacio de nombres:  System.Diagnostics
Ensamblado:  System (en System.dll)
[BrowsableAttribute(false)]
public bool HasExited { get; }

Valor de propiedad

Tipo: System.Boolean
Es true si el proceso del sistema operativo al que hace referencia el componente Process ha terminado; de lo contrario, es false.
ExcepciónCondición
InvalidOperationException

No hay ningún proceso asociado al objeto.

Win32Exception

No se pudo recuperar el código de salida del proceso.

NotSupportedException

Se está intentando obtener acceso a la propiedad HasExited de un proceso que se está ejecutando en un equipo remoto. Esta propiedad sólo está disponible para los procesos que se ejecutan en el equipo local.

Un valor de true para la propiedad HasExited indica que el proceso asociado ha finalizado, bien de forma normal o de forma anómala. Puede solicitar o forzar la terminación del proceso asociado mediante una llamada a CloseMainWindow o Kill. Si un identificador está abierto para el proceso, el sistema operativo libera la memoria del proceso cuando éste termina, pero conserva la información administrativa del proceso, como el identificador, el código de salida y la hora de salida. Para obtener esta información, se pueden utilizar las propiedades ExitCode y ExitTime. Estas propiedades se establecen automáticamente para los procesos iniciados por este componente. La información administrativa se libera cuando todos los componentes Process asociados al proceso del sistema se destruyen y dejan de contener identificadores para el proceso terminado.

Un proceso puede terminar independientemente del código. Si el proceso se inició utilizando este componente, el sistema actualiza el valor de HasExited automáticamente, aunque el proceso asociado se cierre independientemente.

NotaNota

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 esta propiedad devuelva un resultado true. Para asegurarse de que se ha completado el control de eventos asincrónico, llame a la sobrecarga WaitForExit() que no toma ningún parámetro antes de comprobar HasExited.

En el siguiente ejemplo se inicia una instancia del Bloc de notas. A continuación, se recupera el uso de memoria física a intervalos de 2 segundos durante 10 segundos como máximo. También se detecta si el proceso termina antes de que transcurran 10 segundos. El proceso se cierra si se sigue ejecutando después de transcurrir 10 segundos.



using System;
using System.Diagnostics;
using System.Threading;

namespace Process_Sample
{
   class MyProcessClass
   {
      public static void Main()
      {
         try
         {
            Process myProcess;
            myProcess = Process.Start("Notepad.exe");
            // Display physical memory usage 5 times at intervals of 2 seconds.
            for (int i = 0;i < 5; i++)
            {
               if (!myProcess.HasExited)
               {
                   // Discard cached information about the process.
                   myProcess.Refresh();
                   // Print working set to console.
                   Console.WriteLine("Physical Memory Usage: " 
                                        + myProcess.WorkingSet.ToString());
                   // Wait 2 seconds.
                   Thread.Sleep(2000);
               }
               else {
                   break;
               } 
            }

            // Close process by sending a close message to its main window.
            myProcess.CloseMainWindow();
            // Free resources associated with process.
            myProcess.Close();

         }
         catch(Exception e)
         {
            Console.WriteLine("The following exception was raised: ");
            Console.WriteLine(e.Message);
         }
      }
   }
}


.NET Framework

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

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1
  • LinkDemand 

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

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.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.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.