當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# Thread.ResetAbort用法及代碼示例


Thread類負責在multi-thread編程中創建和管理線程。它提供了一種稱為ResetAbort的方法,該方法負責取消當前線程的中止請求。它防止ThreadAbortException終止線程。

用法:

public static void ResetAbort ();

異常:


  • ThreadStateException:如果未在當前線程上調用中止。
  • SecurityException:如果調用者沒有當前線程所需的安全權限。

以下示例程序旨在說明ResetAbort()方法的使用:

示例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"); 
    } 
}

輸出:

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

示例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"); 
    } 
}

運行時錯誤:

Unhandled Exception:
System.Threading.ThreadStateException: Unable to reset abort because no abort was requested.

參考:



相關用法


注:本文由純淨天空篩選整理自ankita_saini大神的英文原創作品 Thread.ResetAbort Method in C#。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。