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

溫馨提示×

c# autoresetevent怎樣實現

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

在C#中,AutoResetEvent是一個同步原語,它允許一個或多個線程等待,直到另一個線程發出信號。當AutoResetEvent的計數器從0變為非0時,等待的線程會被釋放。

要使用AutoResetEvent,你需要執行以下步驟:

  1. 創建一個AutoResetEvent實例。
  2. 使用WaitOne()方法讓當前線程等待,直到AutoResetEvent被發出信號。
  3. 使用Set()方法發出信號,喚醒等待的線程。
  4. 使用Reset()方法將計數器重置為0,阻止其他線程被喚醒。

下面是一個簡單的示例:

using System;
using System.Threading;

class Program
{
    static AutoResetEvent autoResetEvent = new AutoResetEvent(false); // 初始計數為0

    static void Main()
    {
        Thread t1 = new Thread(ThreadMethod1);
        Thread t2 = new Thread(ThreadMethod2);

        t1.Start();
        t2.Start();

        t1.Join();
        t2.Join();
    }

    static void ThreadMethod1()
    {
        Console.WriteLine("Thread 1: Waiting for AutoResetEvent...");
        autoResetEvent.WaitOne(); // 等待信號
        Console.WriteLine("Thread 1: Signal received.");
    }

    static void ThreadMethod2()
    {
        Thread.Sleep(1000); // 讓線程休眠1秒,以便觀察等待效果
        Console.WriteLine("Thread 2: Signaling AutoResetEvent...");
        autoResetEvent.Set(); // 發出信號
    }
}

在這個示例中,我們創建了兩個線程t1t2ThreadMethod1會等待AutoResetEvent的信號,而ThreadMethod2會在休眠1秒后發出信號。當ThreadMethod2發出信號后,ThreadMethod1會繼續執行。

0
重庆市| 昌江| 泸定县| 白水县| 高平市| 河津市| 麦盖提县| 聂拉木县| 罗源县| 成安县| 自贡市| 宝山区| 筠连县| 五台县| 监利县| 五家渠市| 鄂尔多斯市| 东莞市| 和硕县| 抚松县| 石阡县| 泽库县| 河间市| 牙克石市| 星子县| 双城市| 克拉玛依市| 舟曲县| 兴安盟| 南郑县| 那坡县| 望江县| 洛浦县| 惠东县| 吉林省| 桃园市| 松溪县| 库尔勒市| 鹿邑县| 唐海县| 濮阳市|