AutoResetEvent類是一個同步事件類,用于在多線程中進行線程同步。在C#中,可以通過AutoResetEvent的實例來調用其方法和屬性。
以下是使用AutoResetEvent類的基本示例:
using System;
using System.Threading;
class Program
{
static AutoResetEvent autoResetEvent = new AutoResetEvent(false);
static void Main()
{
Thread t1 = new Thread(Worker);
t1.Start();
// 等待子線程執行完成
autoResetEvent.WaitOne();
Console.WriteLine("Main thread is done.");
}
static void Worker()
{
Console.WriteLine("Worker thread is starting...");
Thread.Sleep(2000); // 模擬耗時操作
Console.WriteLine("Worker thread is done.");
// 通知主線程完成
autoResetEvent.Set();
}
}
在上面的示例中,首先創建了一個AutoResetEvent實例autoResetEvent,并初始化為false。然后創建一個子線程t1并調用Worker方法,在Worker方法中模擬了一個耗時操作,并在完成后通過調用autoResetEvent的Set()方法通知主線程完成。主線程在調用WaitOne()方法時會被阻塞,直到autoResetEvent被設置為true。
通過這種方式,可以實現線程之間的同步和通信。