如何在控制台应用程序中使用main方法外的计时器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在控制台应用程序中使用main方法外的计时器相关的知识,希望对你有一定的参考价值。

我在类中有一个方法,它将数据作为List返回。我需要使用timer事件让这个方法以不同的间隔执行来检查数据。我需要从第一个方法获取返回对象到另一个方法。并且我必须在控制台应用程序中调用Main mehtod中的第二个方法。

public class clsSample
{
    private static List<string> GetData()
    {            
        data = clsApp.LoadData();
        return data;
    }


    public static void InitTimer()
    {           
        Timer t = new Timer();
        t.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        t.Interval = 50000;
        t.Enabled = true;                     
    }

     private static void OnTimedEvent(object source, ElapsedEventArgs e)
     {             
        GetData();            
     }

}
class Program
{
    static void Main()
    {
        List<string> data = clsSample.GetData();
    }
}

我需要从GetData()方法获取返回数据.But定时器不需要在Main方法中调用。这个怎么可能?

答案

将以下内容放在clsSample上:

  public delegate void EventRaiser(List<string> data);
  public event EventRaiser OnDataRetrieved;

并把它放在计时器方法上

 private static void OnTimedEvent(object source, ElapsedEventArgs e)
 {                  
     if(OnDataRetrieved !=null)
     {
         OnDataRetrieved(GetData())
     }
 }

然后从program.cs类处理事件

以上是关于如何在控制台应用程序中使用main方法外的计时器的主要内容,如果未能解决你的问题,请参考以下文章

我将如何更改我的程序,以便在方法正确后计时器停止

如何在 qt creator 的 main.cpp 中有一个计时器,以便在单击按钮时更新 GUI?

如何在 C# 的控制台应用程序中使用带有 Web 浏览器的计时器?

20165223《Java程序设计》第八周Java学习总结

如何在symfony 2.x中设置控制台命令的定时器?

如何使用 Timer 类调用方法,做某事,重置计时器,重复?