在C#中,可以通過使用標志位來安全退出多線程。以下是一個示例代碼:
using System;
using System.Threading;
class Program
{
private static bool isRunning = true;
static void Main()
{
Thread thread = new Thread(Worker);
thread.Start();
Console.WriteLine("Press any key to stop the thread...");
Console.ReadKey();
isRunning = false;
thread.Join();
Console.WriteLine("Thread stopped.");
}
static void Worker()
{
while (isRunning)
{
Console.WriteLine("Thread is running...");
Thread.Sleep(1000);
}
}
}
在上面的示例中,定義了一個靜態的標志位isRunning
來控制線程的運行狀態。在主線程中,啟動了一個工作線程,并在按下任意鍵時將isRunning
設置為false
,然后等待工作線程結束。在工作線程中,通過檢查isRunning
的值來控制線程是否繼續運行。當isRunning
為false
時,工作線程會安全退出。
另外,也可以使用CancellationToken
來實現線程的安全退出。具體使用方法可以參考C#中的CancellationToken
文檔。