C# 如何在后台工作定时器
我可以运行计时器,但它挂起,当我运行后台时,我需要在后台运行计时器。 谁能告诉我如何在后台运行计时器。 我的计时器代码是C# 如何在后台工作定时器,c#,C#,我可以运行计时器,但它挂起,当我运行后台时,我需要在后台运行计时器。 谁能告诉我如何在后台运行计时器。 我的计时器代码是 btnIntraday.Enabled = false; btnStartBackfill.Enabled = false; btnStop.Enabled = true; if (btnIntraday.Text == "Intraday") { timerIntrad
btnIntraday.Enabled = false;
btnStartBackfill.Enabled = false;
btnStop.Enabled = true;
if (btnIntraday.Text == "Intraday")
{
timerIntraday.Interval = 5000;
timerIntraday.Enabled = true;
btnIntraday.Text = "Updating..";
}
else if (btnIntraday.Text == "Updating..")
{
timerIntraday.Enabled = false;
btnIntraday.Text = "Intraday";
}
我的背景代码是
btnIntraday.Enabled = false;
btnStartBackfill.Enabled = false;
btnStop.Enabled = true;
txtInterval.Text = ddTimeInterval.Value.ToString();
int inter = (int.Parse(txtInterval.Text)) * multiplyingFactorBackfill;
try
{
bgBackfillDCX.RunWorkerAsync();
}
catch (Exception ex)
{
}
谁能告诉我如何在后台运行计时器。
提前感谢。您可以使用
处理以运行计时器
处理以处理计时事件
处理以停止计时器。您可以使用
处理以运行计时器
处理以处理计时事件
处理以停止计时器。我想你说的是,你想设置背景代码,然后让它定期做一些工作。如果是这样的话,你需要一个定时器在后台代码而不是前端。这意味着在System.Timers,IIRC中使用不同的计时器类 我想你说的是,你想先设置背景代码,然后让它定期做一些工作。如果是这样的话,你需要一个定时器在后台代码而不是前端。这意味着在System.Timers,IIRC中使用不同的计时器类 如果您坚持让计时器在前端工作(虽然我不建议这样做,但我可以理解在某些情况下更容易),有一种方法(注意:我假设使用的是Windows窗体): 在以下代码中,有:
- 引用System.Windows.Forms.timer对象实例的计时器
- notifyIcon引用实例System.Windows.Forms.notifyIcon对象
- MainWindow\u与窗体的Resize事件关联的Resize方法
- notifyIcon\与notifyIcon的单击事件关联的单击方法
private void notifyIcon_Click(object sender, EventArgs e)
{
notifyIcon.Visible = false;
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
this.BringToFront();
this.Activate();
}
如果您坚持让计时器在前端工作(虽然我不建议这样做,但我可以理解在某些情况下更容易),有一种方法(注意:我假定使用Windows窗体): 在以下代码中,有:
- 引用System.Windows.Forms.timer对象实例的计时器
- notifyIcon引用实例System.Windows.Forms.notifyIcon对象
- MainWindow\u与窗体的Resize事件关联的Resize方法
- notifyIcon\与notifyIcon的单击事件关联的单击方法
private void notifyIcon_Click(object sender, EventArgs e)
{
notifyIcon.Visible = false;
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
this.BringToFront();
this.Activate();
}
我可以在后台运行,但不是自动运行running@voipservicesolution:你什么意思!??我需要在不挂起的情况下连续运行应用程序。有什么方法可以连续运行吗background@voipservicesolution:您在使用BackgroundWorker时遇到问题吗?这是我的背景代码btnIntraday.Enabled=false;btnStartBackfill.Enabled=false;btnStop.Enabled=true;txtInterval.Text=ddTimeInterval.Value.ToString();int inter=(int.Parse(txtInterval.Text))*乘以factorbackfill;请尝试{bgcuppldcx.RunWorkerAsync();}catch(Exception ex){}但它不会在计时器中连续运行,它会继续运行,但它会挂起。我可以在后台运行,但它不会自动运行running@voipservicesolution:你什么意思!??我需要在不挂起的情况下连续运行应用程序。有什么方法可以连续运行吗background@voipservicesolution:您在使用BackgroundWorker时遇到问题吗?这是我的背景代码btnIntraday.Enabled=false;btnStartBackfill.Enabled=false;btnStop.Enabled=true;txtInterval.Text=ddTimeInterval.Value.ToString();int inter=(int.Parse(txtInterval.Text))*乘以factorbackfill;请尝试{bgcuppldcx.RunWorkerAsync();}catch(Exception ex){}但它不会在计时器中连续运行,它会持续运行,但会挂起。我可以问一下该代码的作用吗?如何单独调用RunWorkerAsync()(递归的)?我能问一下这段代码是做什么的吗?如何单独调用RunWorkerAsync()(递归)?