背景工作者,当圈时
我正在尝试创建的是后台工作程序,每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