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

溫馨提示×

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
集贤县| 邓州市| 吉安市| 封丘县| 丹寨县| 深圳市| 黑龙江省| 临江市| 内江市| 临猗县| 芒康县| 双鸭山市| 察哈| 江山市| 伊宁市| 大连市| 鄂州市| 湟源县| 泰州市| 广昌县| 三门峡市| 格尔木市| 罗城| 米泉市| 若羌县| 锦州市| 佛教| 麻江县| 揭西县| 高青县| 新昌县| 温宿县| 凭祥市| 南靖县| 萨嘎县| 焦作市| 环江| 东台市| 两当县| 新宁县| 麻阳|