📅  最后修改于: 2023-12-03 15:30:19.508000             🧑  作者: Mango
在C#中,线程是一种轻量级的执行单元,可以帮助我们实现多任务的并发执行。其中,线程的Sleep()
方法可以帮助我们暂停当前线程的执行,让CPU在指定的时间内去执行其他线程。
Sleep()
方法的语法如下:
public static void Sleep(int millisecondsTimeout);
其中,millisecondsTimeout
参数表示当前线程暂停的时间(以毫秒为单位)。
下面是一个使用Sleep()
方法暂停线程的示例代码:
using System;
using System.Threading;
class Program
{
static void Main()
{
Console.WriteLine("主线程开始执行");
Thread thread = new Thread(new ThreadStart(WorkerThread));
thread.Start();
Thread.Sleep(2000); // 暂停当前线程 2 秒钟
Console.WriteLine("主线程恢复执行");
}
static void WorkerThread()
{
Console.WriteLine("工作线程开始执行");
Thread.Sleep(5000); // 暂停当前线程 5 秒钟
Console.WriteLine("工作线程恢复执行");
}
}
在上面的代码中,首先创建了一个WorkerThread
线程,并且在主线程中使用Sleep()
方法暂停了 2 秒钟,然后主线程恢复执行。在经过了 2 秒钟后,WorkerThread
线程开始执行,并且在执行过程中使用Sleep()
方法暂停了 5 秒钟,然后恢复执行。
程序运行结果如下:
主线程开始执行
工作线程开始执行
主线程恢复执行
工作线程恢复执行
Sleep()
方法会暂停当前线程的执行,让CPU去执行其他线程,不会释放当前线程占用的锁和资源。Sleep()
方法的精度并不保证非常高,具体取决于操作系统的调度器。Sleep(0)
可以强制暂停当前线程并让CPU去执行其他线程,相当于让出自己的时间片。Thread.Join()
方法等待线程执行结束,避免线程异常退出。