91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c# autoresetevent如何創建

c#
小樊
81
2024-11-18 11:07:03
欄目: 編程語言

在C#中,AutoResetEvent 是一個同步原語,用于在多個線程之間進行通信。它可以用于控制對共享資源的訪問,或者讓一個或多個線程等待其他線程完成操作。要創建一個 AutoResetEvent,可以使用 new AutoResetEvent(bool) 構造函數,其中 bool 參數表示初始狀態。如果設置為 true,則事件處于有信號狀態;如果設置為 false,則事件處于無信號狀態。

以下是一個簡單的示例:

using System;
using System.Threading;

class Program
{
    static AutoResetEvent autoResetEvent = new AutoResetEvent(false); // 創建一個初始狀態為無信號的 AutoResetEvent

    static void Main()
    {
        Thread thread1 = new Thread(Thread1Method);
        Thread thread2 = new Thread(Thread2Method);

        thread1.Start();
        thread2.Start();

        thread1.Join();
        thread2.Join();
    }

    static void Thread1Method()
    {
        Console.WriteLine("Thread 1 is waiting for the AutoResetEvent.");
        autoResetEvent.WaitOne(); // 等待事件變為有信號狀態
        Console.WriteLine("Thread 1 has been signaled.");
    }

    static void Thread2Method()
    {
        Thread.Sleep(1000); // 讓線程2休眠1秒,以便線程1先執行
        Console.WriteLine("Thread 2 is signaling the AutoResetEvent.");
        autoResetEvent.Set(); // 將事件設置為有信號狀態
    }
}

在這個示例中,我們創建了兩個線程 thread1thread2Thread1Method 方法等待 AutoResetEvent 變為有信號狀態,然后繼續執行。Thread2Method 方法在休眠1秒后,將 AutoResetEvent 設置為有信號狀態,從而喚醒等待的線程。

0
蒲江县| 濮阳市| 应城市| 黑水县| 天长市| 潼南县| 邵阳县| 龙门县| 金门县| 蒙城县| 新昌县| 富蕴县| 崇仁县| 洛扎县| 普陀区| 深水埗区| 玉山县| 隆林| 凉城县| 富民县| 易门县| 水富县| 长顺县| 遂宁市| 贵定县| 永昌县| 万安县| 平和县| 阿拉善盟| 安达市| 鄂州市| 广丰县| 交城县| 化隆| 鹤山市| 临沂市| 翼城县| 八宿县| 六安市| 札达县| 宁晋县|