Cómo programar un hilo para su ejecución en C#

Thread.Start Method es responsable de programar la ejecución de un subproceso. Este método se puede sobrecargar pasándole diferentes parámetros.

  • Comienzo()
  • Inicio (Objeto)

Comienzo()

Este método le dice al sistema operativo que cambie el estado de la instancia actual a En ejecución. O en otras palabras, debido a este método, el hilo comienza su ejecución.

Sintaxis:

public void Start ();

Excepciones:

  • ThreadStateException: si el hilo ya se ha iniciado.
  • OutOfMemoryException: si no hay suficiente memoria disponible para iniciar un hilo.

Ejemplo:

// C# program to illustrate the
// use of Start() method
using System;
using System.Threading;
  
class GThread {
  
    // Non-static method
    public void Job()
    {
        for (int X = 0; X < 4; X++) {
            Console.WriteLine(X);
        }
    }
}
  
// Driver Class
public class GFG {
  
    // Main Method
    public static void Main()
    {
        // Creating object of GThread class
        GThread obj = new GThread();
  
        // Creating and initializing a thread
        Thread thr = new Thread(new ThreadStart(obj.Job));
  
        // Start the execution of Thread
        // Using Start() method
        thr.Start();
    }
}

Producción:

0
1
2
3

Inicio (Objeto)

Este método le dice al sistema operativo que cambie el estado de la instancia actual a En ejecución. Pasa un objeto que contiene datos para ser utilizados por el método que ejecuta el subproceso. Este parámetro es opcional.

Sintaxis:

public void Start (object parameter);

Aquí, el parámetro es un objeto que contiene datos que utilizará el método que ejecuta el subproceso.

Excepciones:

  • ThreadStateException: si el hilo ya se ha iniciado.
  • OutOfMemoryException: si no hay suficiente memoria disponible para iniciar un hilo.
  • InvalidOperationException: si el subproceso se creó con un delegado de ThreadStart en lugar de un delegado de ParameterizedThreadStart.

Ejemplo:

// C# program to illustrate the
// use of Start(Object) method
using System;
using System.Threading;
  
// Driver Class
class GFG {
  
    // Main Method
    public static void Main()
    {
        // Creating object of GFG class
        GFG obj = new GFG();
  
        // Creating and initializing threads
        Thread thr1 = new Thread(obj.Job1);
        Thread thr2 = new Thread(Job2);
  
        // Start the execution of Thread
        // Using Start(Object) method
        thr1.Start(01);
        thr2.Start("Hello")
    }
  
    // Non-static method
    public void Job1(object value)
    {
        Console.WriteLine("Data of Thread 1 is: {0}", value);
    }
  
    // Static method
    public static void Job2(object value)
    {
        Console.WriteLine("Data of Thread 2 is: {0}", value);
    }
}

Producción:

Data of Thread 1 is: 1
Data of Thread 2 is: Hello

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 *