117.info
人生若只如初见

如何在C#中使用ManualResetEvent

在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方法将其重新设置为非信号状态。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe2d6AzsIBQdTAVE.html

推荐文章

  • C#中FormatDateTime的技巧分享

    在C#中,可以使用DateTime对象的ToString方法来格式化日期时间。以下是一些常用的日期时间格式化样式: “yyyyMMdd”:将日期格式化为年月日,例如20220304。

  • C#中nullreferenceexception解决办法

    在C#中,NullReferenceException通常是由于尝试访问空引用对象的成员或属性而引起的。要解决NullReferenceException,可以采取以下措施: 检查对象是否为空:在访...

  • C#四舍五入有何局限性

    在C#中,四舍五入存在一些局限性,主要包括以下几点: 精度限制:C#中的四舍五入函数只能保留一定的小数位数,对于较大或较小的数值,可能会出现精度丢失的情况。...

  • C#四舍五入对负数如何处理

    在C#中,四舍五入对于负数的处理方式是依据标准的四舍五入规则,即当小数部分大于等于0.5时进位,小于0.5时舍去。
    比如,在对-2.5进行四舍五入时,会得到-2...

  • inputstreamreader和FileReader何时使用哪个

    InputStreamReader和FileReader都是用来读取文件的类,但它们之间有一些不同。
    FileReader 是用来读取字符文件的类。它继承自InputStreamReader类,但是它仅...

  • inputstreamreader如何读取用户输入

    InputStreamReader 是一个字节流到字符流的桥接器,它可以将字节流转换为字符流。如果想要使用 InputStreamReader 读取用户输入,可以结合 System.in 来实现。下...

  • 在Select语句中使用子查询好吗

    在某些情况下,使用子查询可以提高查询的灵活性和效率。例如,当需要在查询结果中包含某些计算或过滤条件时,子查询可以很方便地实现这些功能。另外,子查询还可...

  • Select语句中Join的正确用法

    Join 语句用于从多个表中检索数据,并将这些数据与某些条件匹配的行连接起来。它的正确用法是:
    SELECT column1, column2
    FROM table1
    JOIN tabl...