c# - 每次都有不同参数的定时器

时间:2017-02-11 12:23:51

标签: c# loops timer

我列出了一些保存在JSON文件中的问题。我想每隔10秒发一个不同的问题。 我每10秒启动一个计时器,但是int"位置"每次都不能递增。我该怎么办?

public override void OnStart()
{
     dynamic data = Newtonsoft.Json.JsonConvert.DeserializeObject(File.ReadAllText("QCM.js"));

     int pos = 0;
     Timer aTimer = new Timer(2000);
     aTimer.Elapsed += (sender, e) => SendData(pos, data); 
     pos++;
     aTimer.Start();

static void SendData (int pos, dynamic data)
{
     PackageHost.WriteInfo(data.Data[pos].Label);
}

2 个答案:

答案 0 :(得分:4)

lambda捕获pos变量,你可以使用

aTimer.Elapsed += (sender, e) => SendData(pos++, data); 
//pos++;

答案 1 :(得分:0)

pos设为静态变量,并在SendData中递增。

确保在数据用完时结束计时器。