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

我有两个计时器, aSystem.Timers.Timer和 a 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();

    }


慕少森
浏览 199回答 2
2回答

慕的地8271018

System.Timers.Timer每 1.5 秒仅使用和 准备数据,然后Invoke在同一事件处理程序中立即更新 UI using方法。

收到一只叮咚

干得好:Timer timer1;Timer timer2;private void Timer1_Elapsed(){//just to make sure your timer1 & timer2 doesn't fire before you do your worktimer1.Stop();timer2.Stop();// Do What you want heretimer2.Start();}private void Timer2_Elapsed(){timer2.Stop();//Do what you want heretimer1.Start();}只需确保最初启动您的 timer1。
打开App,查看更多内容
随时随地看视频慕课网APP