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

溫馨提示×

C# ManualResetEvent等待時間怎樣設置

c#
小樊
85
2024-10-12 09:21:01
欄目: 編程語言

在C#中,ManualResetEvent 類用于同步多個線程,允許一個或多個線程等待,直到其他線程調用 Set 方法來重置事件。要設置 ManualResetEvent 的等待時間,你可以使用 WaitOneWaitManyWaitAny 方法,并傳入一個表示超時時間的 TimeSpan 參數。

以下是一個簡單的示例,展示了如何使用 ManualResetEvent 設置等待時間:

using System;
using System.Threading;

class Program
{
    static ManualResetEvent _event = new ManualResetEvent(false); // 初始化為非信號狀態

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

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

        // 讓線程1在等待5秒后繼續執行
        _event.WaitOne(5000);
        Console.WriteLine("Thread 1 continues.");

        // 讓所有等待的線程繼續執行
        _event.Set();

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

    static void DoWork()
    {
        Console.WriteLine("Thread waiting for event.");
        _event.WaitOne(); // 等待事件被設置
        Console.WriteLine("Event set, thread continues.");
    }
}

在這個示例中,我們創建了兩個線程 thread1thread2,它們都調用 DoWork 方法。在 DoWork 方法中,線程調用 ManualResetEventWaitOne 方法并傳入一個5秒的超時時間。這意味著線程將等待最多5秒,然后繼續執行。在主線程中,我們在5秒后調用 Set 方法來設置事件,允許所有等待的線程繼續執行。

0
天门市| 双桥区| 福泉市| 博湖县| 西乌珠穆沁旗| 烟台市| 康定县| 甘南县| 霍邱县| 抚远县| 同江市| 安阳县| 临泉县| 清水县| 仙居县| 那坡县| 岑巩县| 吉水县| 磐安县| 永新县| 合江县| 景泰县| 黑山县| 饶河县| 舒兰市| 昭苏县| 商洛市| 垫江县| 剑阁县| 徐闻县| 安福县| 读书| 安陆市| 嘉兴市| 白河县| 宁阳县| 含山县| 江油市| 玛曲县| 扎赉特旗| 抚州市|