事件处理程序的C#计时器

事件处理程序的C#计时器,c#,timer,C#,Timer,我当前有以下事件处理程序 WqlEventQuery query = new WqlEventQuery("__InstanceModificationEvent", new TimeSpan(0, 0, 1), "TargetInstance ISA \"Win32_NetworkAdapterConfiguration\""); ManagementEventWatcher eventWatcher = new ManagementEventWatcher(query);

我当前有以下事件处理程序

WqlEventQuery query = new WqlEventQuery("__InstanceModificationEvent", 
new TimeSpan(0, 0, 1), "TargetInstance ISA \"Win32_NetworkAdapterConfiguration\"");

        ManagementEventWatcher eventWatcher = new ManagementEventWatcher(query);
        eventWatcher.EventArrived += new EventArrivedEventHandler(eventArrived);
        eventWatcher.Start();

 private void eventArrived(object sender, EventArrivedEventArgs e)
 {
    //Event Codes
 }
我需要帮助开发(一次性)计时器。下面是它应该如何工作

  • 当发生事件时,计时器将开始运行
  • 由于事件可能多次发生,如果计时器已启动,请不要再次启动计时器!(一次)
  • 计时器持续时间应为5秒
  • 在此期间(5秒),计时器事件必须枚举网络适配器的连接状态

  • 非常感谢大家对这个问题的建议/帮助/建议/解决方案。我对(一次性)计时器的机制感到困惑

    也许这个伪代码有助于:

    myTimer.Interval = 5000;//5s
    private void eventArrived(object sender, EventArrivedEventArgs e)
    {
       if(!myTimer.Enabled) //if timer not running
          myTimer.Start();
    }
    
    private void myTimer_Tick(object sender, System.EventArgs e)
    {
       //enumerate statuses every 5s
    }
    

    您已经有了如何操作的步骤,所以只需编写代码即可。你在写代码或写作业时有什么问题吗?问题是我不知道怎么写代码!有什么指导方针吗?