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

溫馨提示×

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
文安县| 沂南县| 依安县| 大宁县| 宁陵县| 武汉市| 遂川县| 彩票| 德化县| 金平| 岐山县| 临湘市| 临洮县| 呼和浩特市| 曲阜市| 玉林市| 新昌县| 武川县| 昌宁县| 甘肃省| 烟台市| 武冈市| 高密市| 海丰县| 紫阳县| 白玉县| 忻城县| 方城县| 嘉兴市| 印江| 博野县| 库尔勒市| 德清县| 永安市| 宝坻区| 奉节县| 临桂县| 平江县| 交城县| 清丰县| 正宁县|