亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c# manualresetevent 在多線程中應用

c#
小樊
81
2024-11-19 08:39:37
欄目: 編程語言

ManualResetEvent 是 C# 中一種用于同步線程的類,它允許一個或多個線程等待,直到另一個線程設置事件。在多線程編程中,ManualResetEvent 可以幫助你控制線程之間的執行順序和協作。

以下是一個簡單的示例,展示了如何在多線程中使用 ManualResetEvent

using System;
using System.Threading;

class Program
{
    static ManualResetEvent _event = new ManualResetEvent(false); // 初始狀態為未觸發

    static void Main(string[] args)
    {
        Thread thread1 = new Thread(Thread1);
        Thread thread2 = new Thread(Thread2);

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

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

    static void Thread1()
    {
        Console.WriteLine("Thread 1 is waiting for the event to be set.");
        _event.WaitOne(); // 等待事件被設置
        Console.WriteLine("Thread 1: Event has been set.");
    }

    static void Thread2()
    {
        Thread.Sleep(1000); // 讓線程2等待1秒
        Console.WriteLine("Thread 2: Setting the event.");
        _event.Set(); // 設置事件
    }
}

在這個示例中,我們創建了兩個線程 thread1thread2Thread1 在開始時等待事件被設置,而 Thread2 在等待1秒后設置事件。當事件被設置時,Thread1 繼續執行。

ManualResetEvent 還有其他方法,如 WaitAllWaitAny,可用于等待多個事件或等待一組事件中任意一個被設置。你還可以使用 Reset 方法將事件重置為未觸發狀態,以便再次使用。

0
北票市| 水富县| 盐山县| 万源市| 杂多县| 青岛市| 郁南县| 水富县| 达孜县| 台东市| 泾川县| 西峡县| 扎鲁特旗| 玛曲县| 佛山市| 如皋市| 宣化县| 阳山县| 涟水县| 民乐县| 江陵县| 富源县| 平阳县| 南岸区| 轮台县| 凤城市| 南靖县| 丹巴县| 全州县| 寿光市| 周至县| 灵台县| 织金县| 当阳市| 五寨县| 晋中市| 左贡县| 宜城市| 西乌珠穆沁旗| 平遥县| 华池县|