我有两个计时器,System.Timers.Timer
和System.Windows.Forms.Timer
。现在每个1.5都调用一个方法。但它们不同步,因为有时使用System.Timers.Timer
调用的方法需要更长时间才能完成。是否有办法使用System.Windows.Forms.Timer
调用的方法等到System.Timers.Timer
的方法完成?
到目前为止我尝试了什么:
private void FileReadFunction(object sender, EventArgs e)
{
try
{
foreach (NetPinger.source.AddGraph b in graphList)
{
b.fileRead();
}
}
catch(Exception ex)
{
MessageBox.Show(Convert.ToString(ex));
}
myTimer.Stop();
aTimer.Start();
}
public void prepData(object objectInfo, EventArgs e)
{
foreach (NetPinger.source.AddGraph b in graphList)
{
b.prepareData();
}
aTimer.Stop();
myTimer.Start();
}
答案 0 :(得分:1)
你走了:
Timer timer1;
Timer timer2;
private void Timer1_Elapsed()
{
//just to make sure your timer1 & timer2 doesn't fire before you do your work
timer1.Stop();
timer2.Stop();
// Do What you want here
timer2.Start();
}
private void Timer2_Elapsed()
{
timer2.Stop();
//Do what you want here
timer1.Start();
}
确保最初启动你的timer1。
答案 1 :(得分:1)
仅使用<unique-key>
并每1.5秒准备一次数据,然后立即使用System.Timers.Timer
方法在同一事件处理程序中更新UI。