首页主机资讯c# autoresetevent如何控制

c# autoresetevent如何控制

时间2025-09-26 05:46:03发布访客分类主机资讯浏览1416
导读:AutoResetEvent 是 C# 中一种非常有用的同步原语,它允许一个或多个线程等待,直到另一个线程触发事件 创建 AutoResetEvent 对象: AutoResetEvent autoResetEvent = new Au...

AutoResetEvent 是 C# 中一种非常有用的同步原语,它允许一个或多个线程等待,直到另一个线程触发事件

  1. 创建 AutoResetEvent 对象:
AutoResetEvent autoResetEvent = new AutoResetEvent(false);
    

参数 false 表示事件初始状态为未触发。

  1. 在需要等待的线程中使用 WaitOne() 方法:
autoResetEvent.WaitOne();
     // 当前线程将阻塞,直到事件被触发
  1. 在触发事件的线程中使用 Set() 方法:
autoResetEvent.Set();
     // 触发事件,唤醒等待的线程
  1. 如果需要在事件触发后重置事件状态,可以使用 Reset() 方法:
autoResetEvent.Reset();
     // 重置事件状态,使得后续调用 WaitOne() 的线程将继续阻塞

下面是一个简单的示例,展示了如何使用 AutoResetEvent 控制线程同步:

using System;
    
using System.Threading;


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


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

        Console.WriteLine("按任意键继续...");
    
        Console.ReadKey();
    

        autoResetEvent.Set();
     // 触发事件

        Console.WriteLine("事件已触发,主线程继续执行...");

    }


    static void DoWork()
    {
    
        autoResetEvent.WaitOne();
     // 等待事件被触发

        Console.WriteLine("工作线程开始执行...");

    }

}
    

在这个示例中,主线程等待用户按下任意键后触发 AutoResetEvent,工作线程在事件触发后继续执行。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: c# autoresetevent如何控制
本文地址: https://pptw.com/jishu/708112.html
c# autoresetevent怎样操作 c# autoresetevent如何创建

游客 回复需填写必要信息