阅读量:0
在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
文档。