Exporter (0) Imprimer
Développer tout
Développer Réduire

Process.HasExited, propriété

Mise à jour : novembre 2007

Obtient une valeur indiquant si le processus associé s'est terminé.

Espace de noms :  System.Diagnostics
Assembly :  System (dans System.dll)

[BrowsableAttribute(false)]
public bool HasExited { get; }
/** @property */
/** @attribute BrowsableAttribute(false) */
public boolean get_HasExited()

public function get HasExited () : boolean

Valeur de propriété

Type : System.Boolean

true si le processus du système d'exploitation référencé par le composant Process s'est terminé ; sinon, false.

ExceptionCondition
InvalidOperationException

Aucun processus n'est associé à l'objet.

Win32Exception

Le code de sortie du processus n'a pas pu être récupéré.

NotSupportedException

Vous tentez d'accéder à la propriété HasExited pour un processus en cours d'exécution sur un ordinateur distant. La propriété n'est disponible que pour les processus en cours d'exécution sur l'ordinateur local.

Si HasExited a la valeur true, cela indique que le processus associé s'est terminé, de manière normale ou anormale. Vous pouvez demander au processus associé de se terminer (ou le forcer à le faire) en appelant CloseMainWindow ou Kill. Si un handle est ouvert pour le processus, le système d'exploitation libère la mémoire du processus une fois que celui-ci s'est terminé, mais conserve les informations administratives le concernant, telles que le handle, le code de sortie et l'heure de sortie. Pour obtenir ces informations, vous pouvez utiliser les propriétés ExitCode et ExitTime. Ces propriétés sont remplies automatiquement pour les processus qui ont été démarrés par ce composant. Les informations administratives sont libérées lorsque tous les composants Process associés au processus système sont détruits et ne contiennent plus de handle du processus terminé.

Un processus peut s'arrêter indépendamment de votre code. Si vous avez démarré le processus à l'aide de ce composant, le système met automatiquement à jour la valeur de HasExited, même si le processus associé se termine de manière indépendante.

L'exemple suivant démarre une instance du Bloc-notes. Il récupère ensuite l'utilisation de la mémoire physique du processus associé à des intervalles de 2 secondes pendant 10 secondes maximum. L'exemple détecte si le processus cesse de s'exécuter avant que les 10 secondes se soient écoulées. L'exemple ferme le processus s'il s'exécute toujours après 10 secondes.


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);
         }
      }
   }
}


  • LinkDemand 

    pour une confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft