中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
安新县| 象州县| 铜陵市| 来安县| 保康县| 安仁县| 武汉市| 罗山县| 启东市| 永和县| 巨鹿县| 梓潼县| 鹿邑县| 桦甸市| 天全县| 高邮市| 凯里市| 镇赉县| 沙湾县| 鹤壁市| 搜索| 徐汇区| 施秉县| 环江| 郓城县| 丰顺县| 金堂县| 二手房| 海宁市| 河源市| 耒阳市| 韶关市| 大田县| 乐亭县| 兴海县| 通城县| 荣成市| 本溪| 泰宁县| 灵台县| 广东省|