📜  C#线程示例:线程Sleep()方法(1)

📅  最后修改于: 2023-12-03 15:30:19.508000             🧑  作者: Mango

C#线程示例:线程Sleep()方法

在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()方法等待线程执行结束,避免线程异常退出。