在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
等同步對象。