溫馨提示×

C# waitone方法在哪里調用合適

c#
小樊
105
2024-11-28 03:31:28
欄目: 編程語言

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();
    }
}

在這個示例中,我們創建了一個名為 _eventManualResetEvent 實例。在主線程中,我們調用 _event.WaitOne() 以等待事件被設置為信號狀態。在工作線程(DoWork 方法)中,我們模擬耗時操作,然后使用 _event.Set() 將事件設置為信號狀態。當事件被設置時,主線程將繼續執行并輸出 “事件已觸發”。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女