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

溫馨提示×

c# autoresetevent怎樣操作

c#
小樊
82
2024-11-18 11:08:03
欄目: 編程語言

C#中的AutoResetEvent是一個同步原語,它允許一個或多個線程等待,直到另一個線程設置事件。AutoResetEvent有兩種狀態:SetReset。當事件被設置為Set狀態時,等待的線程會被釋放;當事件被重置為Reset狀態時,其他等待的線程會再次被阻塞。

下面是如何使用AutoResetEvent的一些示例:

  1. 創建一個AutoResetEvent實例:
AutoResetEvent autoResetEvent = new AutoResetEvent(false);

參數false表示事件初始狀態為Reset

  1. 在需要等待事件的線程中使用WaitOne方法:
autoResetEvent.WaitOne(); // 當前線程將阻塞,直到事件被設置為Set狀態
  1. 在設置事件的線程中使用Set方法:
autoResetEvent.Set(); // 將事件設置為Set狀態,等待的線程將被釋放
  1. 如果需要重置事件,可以使用Reset方法:
autoResetEvent.Reset(); // 將事件重置為Reset狀態,其他等待的線程將被阻塞

下面是一個完整的示例:

using System;
using System.Threading;

class Program
{
    static AutoResetEvent autoResetEvent = new AutoResetEvent(false);

    static void Main()
    {
        Thread workerThread = new Thread(WorkerMethod);
        workerThread.Start();

        Console.WriteLine("按任意鍵繼續...");
        Console.ReadKey();

        autoResetEvent.Set(); // 設置事件,喚醒等待的線程

        Console.WriteLine("事件已設置,按任意鍵退出...");
        Console.ReadKey();
    }

    static void WorkerMethod()
    {
        autoResetEvent.WaitOne(); // 等待事件被設置為Set狀態
        Console.WriteLine("工作線程開始執行...");
    }
}

在這個示例中,主線程在啟動工作線程之前會等待用戶按下任意鍵。當用戶按下任意鍵后,主線程會設置AutoResetEvent,從而喚醒等待的工作線程。

0
长岛县| 龙游县| 安乡县| 金川县| 柯坪县| 广元市| 三台县| 峡江县| 岳普湖县| 昂仁县| 永泰县| 临夏市| 金湖县| 宜川县| 河北省| 孝感市| 射洪县| 高清| 二连浩特市| 珠海市| 汉源县| 兴海县| 唐山市| 嫩江县| 镇赉县| 桐梓县| 沾化县| 龙口市| 兰西县| 山阳县| 贞丰县| 滁州市| 达拉特旗| 吴忠市| 建水县| 庆元县| 甘谷县| 津市市| 扎兰屯市| 盐池县| 方山县|