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

溫馨提示×

如何在C#中使用ManualResetEvent

c#
小樊
84
2024-07-02 20:02:14
欄目: 編程語言

在C#中,可以使用ManualResetEvent類來實現線程間的同步和通信。下面是一個簡單的示例代碼,演示如何在C#中使用ManualResetEvent:

using System;
using System.Threading;

class Program
{
    static ManualResetEvent manualResetEvent = new ManualResetEvent(false);

    static void Main(string[] args)
    {
        Thread thread1 = new Thread(() =>
        {
            Console.WriteLine("Thread 1 is waiting...");
            manualResetEvent.WaitOne();

            Console.WriteLine("Thread 1 is now running.");
        });

        Thread thread2 = new Thread(() =>
        {
            Console.WriteLine("Thread 2 is waiting...");
            manualResetEvent.WaitOne();

            Console.WriteLine("Thread 2 is now running.");
        });

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

        Thread.Sleep(2000); // 等待2秒鐘

        manualResetEvent.Set(); // 發信號,讓等待的線程繼續執行

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

在上面的示例代碼中,我們創建了一個ManualResetEvent實例并初始化為false。然后創建了兩個線程(thread1和thread2),它們都在等待ManualResetEvent對象的信號。在主線程中等待2秒鐘后,調用Set方法發送信號,讓等待的線程繼續執行。

需要注意的是,ManualResetEvent對象在調用Set方法后會一直保持信號狀態,直到調用Reset方法將其重新設置為非信號狀態。

0
崇阳县| 东兴市| 株洲县| 什邡市| 罗源县| 舞阳县| 石楼县| 襄樊市| 民乐县| 长顺县| 横峰县| 拜城县| 蛟河市| 邛崃市| 吕梁市| 五家渠市| 高邑县| 河西区| 尉犁县| 华池县| 桃园市| 余干县| 密山市| 凭祥市| 甘肃省| 库伦旗| 平南县| 华亭县| 长葛市| 镇江市| 德阳市| 余干县| 贞丰县| 丹寨县| 郴州市| 文水县| 麻江县| 高淳县| 会泽县| 明星| 牡丹江市|