在 C# 中停止執行緒

Saad Aslam 2023年10月12日
在 C# 中停止執行緒

有時,在 C# 中使用執行緒時,你可能會遇到需要終止執行緒的情況。C# 確實為你提供了成功執行此操作的方法,本文旨在解釋在 C# 中終止執行緒的過程。

為了終止執行緒的目標,我們將使用 Abort() 方法。ThreadAbortExceptionAbort() 方法丟擲給呼叫它的執行緒,作為對該異常的響應,執行緒被終止。

在我們可以停止一個執行緒之前,我們必須先啟動一個。要完成建立執行緒,請按照以下步驟操作。

在 C# 中使用 Abort() 方法停止執行緒

要利用 System.Threading 庫的方法來啟動和結束執行緒,請匯入它。

using System.Threading;

我們需要建立一個 ThreadDemo 類。

class ThreadDemo {}

我們將在這個類中建立一個名為 threadAssign() 的執行緒方法,並帶有一個迴圈,該迴圈迭代並輸出 First Thread 四次。

public void threadAssign() {
  for (int threadCount = 0; threadCount < 6; threadCount++) {
    Console.WriteLine("First Thread");
  }
}

之後,我們將建立一個名為 ThreadExampleMain 的新類,包括 main 函式。

class ThreadExampleMain {
  public static void Main() {}
}

我們需要執行以下操作來啟動和停止 Main() 方法中的執行緒。使用資料型別 ThreadDemo 建立並初始化變數 threadDemo

ThreadDemo threadDemo = new ThreadDemo();

我們將使用 Thread 類來初始化一個新變數並將其分配給我們之前建立的執行緒。

Thread thread = new Thread(new ThreadStart(threadDemo.threadAssign));

執行緒可以通過呼叫 Start() 函式來啟動。

thread.Start();

最後,我們可以使用 System.Threading 庫的 Abort() 方法終止執行緒。我們還將列印 "Thread is Abort" 以指示執行緒已終止。

Console.WriteLine("Thread is abort");
thread.Abort();

原始碼:

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();
    }
  }
}

輸出:

First Thread
First Thread
First Thread
First Thread
First Thread
First Thread
Thread is abort
作者: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

相關文章 - Csharp Thread