需要帮助从Form1在Form2上运行计时器

时间:2019-06-20 11:18:45

标签: c#

我需要有关从form1在form2上运行系统计时器的指南。

我认为我需要使用system.threading.timer的system.timer,因为我希望计时器在另一个进程也在运行的同时运行。

Form1将启动计时器,然后(在滴答作响的情况下)将运行查询。 Form2(Waitform)将显示自查询开始运行以来经过的时间。 (不需要很精确。)请参见代码:

从form1:

    private void btnQueryDatabases_Click(object sender, EventArgs e)
    {
        Waitform wf = new Waitform();
        wf.startUp();
        wf.Visible = true;
        wf.Refresh();            

        try
        {                
            allAvailableDatabasesTSM_Click(sender, EventArgs.Empty);                
        }
        finally
        {
           wf.Close();
        }
    }

Form2(Waitform)中的代码

    using System;
    using System.Timers;
    using System.Windows.Forms;

    namespace ECR_DLAB_TestComponent_LookUp
    {
        public partial class Waitform : Form
    {
            DateTime startTime = DateTime.Now;
            TimeSpan ts = new TimeSpan();
            System.Timers.Timer timer = new System.Timers.Timer();

            public Waitform()
            {
                InitializeComponent();
            }
            public void Waitform_Load(object sender, EventArgs e)
            {         
                 startUp();
            }
            public void startUp()
            {
                timer.Interval = 1000;
                timer.Elapsed += Timer_Elapsed;
                timer.Start();
                DateTime startTime = DateTime.Now;          
            }
            public void Timer_Elapsed(Object sender,   System.Timers.ElapsedEventArgs e)
            {
                Invoke(new MethodInvoker(delegate ()
                {
                    ts = DateTime.Now - startTime;
                    lblQueryTime.Text = ts.ToString();
                }));
            }       
        }
    }

我想看到的是查询运行时计时器开始计时。当查询停止时,我希望计时器停止计时,我可能想暂停一下以在这里收集时间,然后等待表单将关闭。

0 个答案:

没有答案