在C#中,可以使用Thread.Suspend()
方法来暂停一个线程,使用Thread.Resume()
方法来恢复一个暂停的线程。以下是一个示例代码:
using System; using System.Threading; public class Program { public static void Main() { // 创建一个新的线程,并指定要执行的方法 Thread thread = new Thread(CountNumbers); // 启动线程 thread.Start(); // 延时一段时间 Thread.Sleep(2000); // 暂停线程 thread.Suspend(); Console.WriteLine("线程已暂停"); // 延时一段时间 Thread.Sleep(2000); // 恢复线程 thread.Resume(); Console.WriteLine("线程已恢复"); // 等待线程执行完毕 thread.Join(); Console.WriteLine("线程已执行完毕"); } public static void CountNumbers() { for(int i = 1; i <= 10; i++) { Console.WriteLine(i); Thread.Sleep(500); } } }
在上述代码中,首先创建了一个新的线程并启动它。然后,延时2秒后暂停线程,再延时2秒后恢复线程。最后,使用Join()
方法等待线程执行完毕,并输出执行完毕的信息。
注意:Thread.Suspend()
和Thread.Resume()
方法在.NET Framework 2.0及以上版本已经被标记为过时,因为这两个方法可能会导致线程死锁或其他问题。推荐使用其他方式来控制线程的暂停和恢复,比如使用ManualResetEvent
或Monitor
等同步对象。