背景工作者,当圈时

我正在尝试创建的是后台工作程序,每30秒执行一些进程。 但是,只要程序启动,我希望这个while循环执行。 这是我正在使用的:

private void watcherprocess1() { backgroundWorker1.RunWorkerAsync(); } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { while( Thread.Sleep(30000); specficView2(); makeFormlist2(); populateListview2(); } 

我的主要问题是ai可以想到一个良好的while循环来保持运行

你在找吗?

 while(true) 

我认为来自Threading-Namespace的Timer会更适合这个。 它会勾选异步,你可以从Tick-Event中生成进程。

我同意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); } } 

使用System.Windows.Forms.Timer