有时可以在线程函数中编写死循环,但是需要考虑怎样退出。
当在该线程函数内执行sleep函数时,线程将会切换到下一个线程运行。
4)创建线程1 Thread thread1 = new Thread(() => DoWork1(0)); thread1.Start(); 5)线程1的函数 static void DoWork1(int threadNumber) { while (true) { lock (_lock) { //停止线程 xx } Thread.Sleep(4000); // 模拟工作 } Console.WriteLine($"线程 {threadNumber} 完成工作。"); }为了能够终止线程运行。
可以采用共享变量控制线程的退出操作:也即是将上述的线程函数的while(true)函数更改为:while (!_shouldStop)。
然后定义一个全局变量
pubulic static volatile bool _shouldStop; 线程停止函数为: public void RequestStop() { _shouldStop = true; } 为了保证线程函数运行时不会被其它线程干扰,可以加入线程锁,例如线程函数的所加的lock函数: public static readonly object _lock = new object(); lock (_lock) { //停止线程 xx }