HOWTO · Csharp
Detener un hilo en C#
En este artículo, explicaré cómo iniciar y detener un hilo en C#.
En esta página
A veces, mientras trabaja con un subproceso en C#, es posible que se encuentre con una situación en la que deba finalizar un subproceso. C# proporciona métodos para que lo haga con éxito, y este artículo tiene como objetivo explicar el proceso de finalización de un subproceso en C#.
Para nuestro objetivo de terminar un hilo, utilizaremos el método Abort(). La ThreadAbortException es lanzada por el método Abort() al subproceso que lo llamó y, como respuesta a esta excepción, el subproceso finaliza.
Antes de que podamos detener un hilo, primero debemos iniciar uno. Para lograr la creación de un hilo, siga los pasos que se indican a continuación.
Utilice el método Abort() para detener un subproceso en C#
Para utilizar los métodos de la biblioteca System.Threading para iniciar y finalizar un hilo, impórtelo.
using System.Threading;
Tendremos que hacer una clase ThreadDemo.
class ThreadDemo {}
Crearemos un método de subproceso llamado threadAssign() dentro de esta clase, con un bucle que itera y genera First Thread cuatro veces.
public void threadAssign() {
for (int threadCount = 0; threadCount < 6; threadCount++) {
Console.WriteLine("First Thread");
}
}
Después de eso, crearemos una nueva clase llamada ThreadExampleMain, que incluye la función principal.
class ThreadExampleMain {
public static void Main() {}
}
Necesitamos realizar las siguientes operaciones para iniciar y detener un hilo dentro del método Main(). Cree e inicialice la variable threadDemo con el tipo de datos ThreadDemo.
ThreadDemo threadDemo = new ThreadDemo();
Usaremos la clase Thread para inicializar una nueva variable y asignarla al hilo que creamos anteriormente.
Thread thread = new Thread(new ThreadStart(threadDemo.threadAssign));
El hilo puede iniciarse invocando la función Start().
thread.Start();
Finalmente, podemos terminar el hilo usando el método Abort() de la biblioteca System.Threading. También imprimiremos "Thread is Abort" para indicar que el hilo ha sido terminado.
Console.WriteLine("Thread is abort");
thread.Abort();
Código fuente:
using System;
using System.Threading;
class ThreadDemo {
void threadAssign() {
for (int threadCount = 0; threadCount < 6; threadCount++) {
Console.WriteLine("First Thread");
}
}
class ThreadExampleMain {
public static void Main() {
ThreadDemo threadDemo = new ThreadDemo();
Thread thread = new Thread(new ThreadStart(threadDemo.threadAssign));
thread.Start();
Console.WriteLine("Thread is abort");
thread.Abort();
}
}
}
Producción :
First Thread
First Thread
First Thread
First Thread
First Thread
First Thread
Thread is abort