我在类中有一个方法以List形式返回数据,我需要使用timer事件让此方法以不同的间隔执行以检查数据,并且我需要将第一个方法的返回对象返回到另一个方法方法。我必须从控制台应用程序的Main方法中调用第二种方法。
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()方法获取返回数据。但是不需要在Main方法中调用timer。这怎么可能?
答案 0 :(得分:1)
在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类
处理事件