我正在尝试创建的是一个后台工作程序,它每30秒执行一些进程。但是,只要程序启动,我希望这个while循环执行。这是我正在使用的:
private void watcherprocess1()
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while(
Thread.Sleep(30000);
specficView2();
makeFormlist2();
populateListview2();
}
我的主要问题是ai可以想到一个良好的while循环来保持这种运行
答案 0 :(得分:6)
我认为Timer from the Threading-Namespace会更适合这种情况。它将勾选异步,您可以从Tick-Event中生成该过程。
答案 1 :(得分:5)
您在寻找
吗?while(true)
答案 2 :(得分:3)
使用System.Windows.Forms.Timer
答案 3 :(得分:3)
我同意Bobby的观点,System.Threading.Timer(或System.Timers.Timer)可能最适合这项工作。
但是如果必须创建一个使用工作线程,我宁愿专门为该任务创建一个。运行BackGroundWorker(这是一个ThreadPool线程)是一个while循环,用于你的应用程序的生命周期并不适合我。
也许是这样的:
private void watcherprocess1()
{
Thread thread = new Thread(new ThreadStart(this.Work));
thread.IsBackground = true;
thread.Name = "My Worker.";
thread.Start();
}
private void Work()
{
while(true)
{
specficView2();
makeFormlist2();
populateListview2();
Thread.Sleep(30000);
}
}