在C#中,AutoResetEvent
是一個同步原語,用于在多個線程之間進行通信。AutoResetEvent
有兩個主要操作:WaitOne()
和Set()
。WaitOne()
方法用于等待事件被觸發,而Set()
方法用于觸發事件。
要使用AutoResetEvent
等待事件被觸發,你可以使用WaitOne()
方法。這個方法會阻塞當前線程,直到事件被觸發。下面是一個簡單的示例:
using System;
using System.Threading;
class Program
{
static AutoResetEvent _autoResetEvent = new AutoResetEvent(false);
static void Main()
{
// 創建一個新線程,該線程將觸發AutoResetEvent
Thread thread = new Thread(TriggerAutoResetEvent);
thread.Start();
// 主線程等待AutoResetEvent被觸發
Console.WriteLine("主線程等待事件被觸發...");
_autoResetEvent.WaitOne();
Console.WriteLine("事件已觸發,主線程繼續執行...");
}
static void TriggerAutoResetEvent()
{
// 等待一段時間,模擬一些操作
Thread.Sleep(3000);
// 觸發AutoResetEvent
Console.WriteLine("觸發事件...");
_autoResetEvent.Set();
}
}
在這個示例中,我們創建了一個AutoResetEvent
實例,并將其初始狀態設置為false
。然后,我們創建一個新線程,該線程將等待3秒鐘,然后觸發AutoResetEvent
。主線程調用WaitOne()
方法等待事件被觸發。當事件被觸發時,主線程將繼續執行。