我正在使用wpf DispatcherTimer,我想将它用于for循环我如何使用它..
我的代码在这里..
DispatcherTimer timer = new DispatcherTimer();
timer.Tick += (s, e) =>
{
for (i = 0; i < 10; i++)
{
obsValue.Add(new Entities(i));
timer.Interval = TimeSpan.FromSeconds(30);
timer.Start();
}
};
...谢谢
答案 0 :(得分:3)
当您启动Interval
设置为30 seconds
的计时器时,其Tick
事件将每30秒启动一次。
现在,我从你的问题中了解到你想要每隔30秒添加一条记录。
这是你能做的。请注意,它不需要for loop
,但您仍需要维护当前索引。为此,您可以使用private field
或local variable with lambda
。
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(30);
Int32 index = 0, maxValue = 10;
timer.Tick += (s, e) =>
{
obsValue.Add(new Entities(index));
index ++; // increment index
// Stop if this event has been raised max number of times
if(index > maxValue) timer.Stop();
};
timer.Start();
答案 1 :(得分:1)
我认为您误解了DispatcherTimer的工作原理。一旦调用Start(),每次到达Interval时都会触发Tick事件,即你启动它并重复滴答。你的代码应该是这样的:
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(30);
timer.Start();
timer.Tick += (s, e) =>
{
for (i = 0; i < 10; i++)
{
obsValue.Add(new Entities(i));
}
};
这将每30秒添加10个新实体。