如何在另一个方法完成后启动方法

时间:2018-06-01 12:08:23

标签: c# winforms timer

我有两个计时器,System.Timers.TimerSystem.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();
    }

2 个答案:

答案 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。