c#winform后台worker与进度条我正在尝试使用BGWorker来增加进度条。我目前正在使用2个BGworker,一个用于向数据库添加数据,另一个用于进度条。数据库上传工作正常,但进度条没有。代码:BackgroundWorkerbg2=newBackgroundWorker();bg2.DoWork+=newDoWorkEventHandler(bg2_DoWork);bg2.RunWorkerAsync();voidbg2_DoWork(objectsender,DoWorkEventArgse){while(bg1.IsBusy)DrawWellPlate.pbar.Increment(1)}它所指的bg1是数据库上传线程,pbar显然是进度条。谢谢。你应该做这样的事情,其中??totalProgress将显示在progressBar中并且doWork不会在UI线程中执行,这是BackgroundWorkerBackgroundWorkerbg2=newBackgroundWorker();的目的;bg2.DoWork+=newDoWorkEventHandler(bg2_DoWork);.ProgressChanged+=newProgressChangedEventHandler(bg2_ProgressChanged)bg2.RunWorkerAsync();voidbg2_DoWork(objectsender,DoWorkEventArgse){while(bg1.IsBusy)worker.ReportProgress(totalProgress);}privatevoidbg2_ProgressChanged(objectsender,ProgressChangedEventArgse){DrawWellPlate。pbar.Value=e.ProgressPercentage;有关详细信息,请参阅此问题是bg1在运行其DoWork方法时将始终报告它正忙。你应该只用一个backgroundworker,在它的work方法中使用类似这样的东西(伪代码):以上就是C#学习教程的全部内容:c#winformbackgroundworker和progressbar,如果对大家有用的话还有我需要的想了解更多C#学习教程,希望大家多多关注~进步——一次5%?totalProgress+=5//更新进度条ReportProgress(totalProgress)if(finished){got_stuff_to_add_to_the_database=false;}}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
