Una clase Thread es responsable de crear y administrar un hilo en la programación multihilo. Proporciona un método conocido como ResetAbort que es responsable de cancelar la solicitud de cancelación del hilo actual. Evita que ThreadAbortException finalice el hilo.
Sintaxis:
public static void ResetAbort ();
Excepciones:
- ThreadStateException : si no se invocó Abort en el subproceso actual.
- SecurityException : si la persona que llama no tiene el permiso de seguridad requerido para el subproceso actual.
Los siguientes programas ilustran el uso del método ResetAbort() :
Ejemplo 1:
// C# program to illustrate the // use of ResetAbort method using System; using System.Threading; using System.Security.Permissions; class MyThread { // Method Job public void Job() { try { for (int I = 0; I < 10; I++) { Console.WriteLine(" My Thread is working..!"); Thread.Sleep(100); } } catch (ThreadAbortException e) { Console.WriteLine("Caught ThreadAbortException and reset"); Console.WriteLine("Ex message: {0}", e.Message); Thread.ResetAbort(); } Console.WriteLine("Thread is alive and working..!"); Thread.Sleep(2000); Console.WriteLine("Thread is finished its working..!"); } } // Driver Class class GFG { // Main Method public static void Main() { MyThread obj = new MyThread(); Thread T = new Thread(obj.Job); T.Start(); Thread.Sleep(100); Console.WriteLine("Aborting thread"); T.Abort(); T.Join(); Console.WriteLine("Main thread ends"); } }
Producción:
My Thread is working..! Aborting thread Caught ThreadAbortException and reset Ex message: Thread was being aborted. Thread is alive and working..! Thread is finished its working..! Main thread ends
Ejemplo 2:
// C# program to illustrate the // use of ResetAbort method using System; using System.Threading; // Driver Class public class GFG { // Main Method public static void Main() { // Creating and initializing threads Thread thr = new Thread(Job); // Start the execution of Thread thr.Start(); // Reset abort request // Using ResetAbort method Thread.ResetAbort(); } public static void Job() { Console.WriteLine("Hello"); } }
Error de tiempo de ejecución:
Excepción no controlada:
System.Threading.ThreadStateException: no se puede restablecer la cancelación porque no se solicitó ninguna cancelación.
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