Cómo verificar si un hilo está vivo o no en C#

Una clase Thread es responsable de crear y administrar un hilo en la programación multihilo. Proporciona una propiedad conocida como IsAlive para verificar si el hilo está vivo o no. O en otras palabras, el valor de esta propiedad indica la ejecución actual del hilo.

Sintaxis:

public bool IsAlive { get; }

Valor de retorno: esta propiedad devuelve verdadero si el subproceso se inicia y no finaliza normalmente o se anula. De lo contrario, devuelve falso . El tipo de retorno de esta propiedad es System.Boolean .

Los siguientes programas ilustran el uso de la propiedad IsAlive :

Ejemplo 1:

// C# program to illustrate the 
// use of IsAlive property
using System;
using System.Threading;
  
public class GFG {
  
    // Main Method
    static public void Main()
    {
        Thread thr;
  
        // Get the reference of main Thread
        // Using CurrentThread property
        thr = Thread.CurrentThread;
  
        // Display the current state of 
        // the main thread Using IsAlive
        // property
        Console.WriteLine("Is main thread is alive"+
                            " ? : {0}", thr.IsAlive);
    }
}

Producción:

Is main thread is alive ? : True

Ejemplo 2:

// C# program to illustrate the 
// use of IsAlive property
using System;
using System.Threading;
  
public class GFG {
  
    // Main method
    public static void Main()
    {
        // Creating and initializing threads
        Thread Thr1 = new Thread(new ThreadStart(job));
        Thread Thr2 = new Thread(new ThreadStart(job));
  
        // Display the current state of 
        // the threads Using IsAlive 
        // property
        Console.WriteLine("Is thread 1 is alive : {0}",
                                         Thr1.IsAlive);
  
        Console.WriteLine("Is thread 2 is alive : {0}",
                                         Thr2.IsAlive);
        Thr1.Start();
        Thr2.Start();
  
        // Display the current state of 
        // the threads Using IsAlive
        // property
        Console.WriteLine("Is thread 1 is alive : {0}",
                                         Thr1.IsAlive);
  
        Console.WriteLine("Is thread 2 is alive : {0}",
                                         Thr2.IsAlive);
    }
  
    // Static method
    public static void job()
    {
        Thread.Sleep(2000);
    }
}

Producción:

Is thread 1 is alive : False
Is thread 2 is alive : False
Is thread 1 is alive : True
Is thread 2 is alive : True

Referencia:

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *