我需要有关从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();
}));
}
}
}
我想看到的是查询运行时计时器开始计时。当查询停止时,我希望计时器停止计时,我可能想暂停一下以在这里收集时间,然后等待表单将关闭。