WaitOne
方法通常在 C# 中的異步編程中使用,它屬于 ManualResetEvent
類。ManualResetEvent
是一個同步原語,用于在多個線程之間進行同步。當調用 WaitOne
方法時,當前線程會阻塞,直到事件被設置為信號狀態。
以下是一個簡單的示例,說明在哪里調用 WaitOne
方法:
using System;
using System.Threading;
class Program
{
static ManualResetEvent _event = new ManualResetEvent(false);
static void Main(string[] args)
{
// 創建一個新線程
Thread thread = new Thread(DoWork);
thread.Start();
// 在主線程中等待事件被設置為信號狀態
Console.WriteLine("等待事件...");
_event.WaitOne();
Console.WriteLine("事件已觸發");
// 結束主線程
thread.Join();
}
static void DoWork()
{
// 模擬耗時操作
Thread.Sleep(3000);
// 將事件設置為信號狀態
Console.WriteLine("工作線程完成,設置事件...");
_event.Set();
}
}
在這個示例中,我們創建了一個名為 _event
的 ManualResetEvent
實例。在主線程中,我們調用 _event.WaitOne()
以等待事件被設置為信號狀態。在工作線程(DoWork
方法)中,我們模擬耗時操作,然后使用 _event.Set()
將事件設置為信號狀態。當事件被設置時,主線程將繼續執行并輸出 “事件已觸發”。