当前位置: 首页 > 编程语言 > C#

C#中长时间运行任务的进度条分享

时间:2023-04-10 14:26:20 C#

C#学习教程:C#中长时间运行任务的进度条在执行这些查询时,我的应用程序似乎冻结了,看起来应用程序已停止工作。我需要使用进度条来避免这个问题,但我不确定如何预测执行查询需要多长时间。运行查询的代码如下privatevoidCheckSsMissingDate(){while(DateTime.Parse(time)='"+tempTime+"'",ssCon);vardr=cmd.ExecuteReader();varcount=0;while(dr.Read()){ssChkDate=(dr["Date_Time"].ToString());consChkDate=DateTime.Parse(ssChkDate).ToString("yyyy-MM-ddHH:mm:ss");tempTime=Convert.ToDateTime(ssChkDate);tempTime=tempTime.AddMinutes(15);TValue1=(dr["Value1"].ToString());TValue2=(dr["Value2"].ToString());TValue3=(dr["Value3"].ToString());TValue4=(dr["Value4"].ToString());TValue5=(dr["Value5"].ToString());TValue6=(dr["Value6"].ToString());TValue7=(dr["Value7"].ToString());TValue8=(dr["Value8"].ToString());TValue9=(dr["Value9"].ToString());如果(CheckMsMissingDate(conssChkDate)==false){InsertMissing(conssChkDate,TValue1,TValue2,TValue3,TValue4,TValue5,TValue6,TValue7,TValue8,TValue9);count=count+1;}}dr.Close();ssCon.Close();updateCount.Text=count+@"已添加缺失记录。";}}如何显示显示一个进度条来显示查询的进度?您可以使用BackgroundWorker()来解决此类问题首先定义类BackgroundWorker()的全局变量privateBackgroundWorkerbgw;然后在开始查询执行时使用下面的代码,如button1_Click()事件或任何东西。bgw=newBackgroundWorker();bgw.WorkerReportsProgress=true;bgw.ProgressChanged+=newProgressChangedEventHandler(bgw_ProgressChanged);bgw.RunWorkerCompleted+=newRunWorkerCompletedEventHandler(bgw_RunWorkerCompleted);bgw.DoWork+=newDoWorkEventHandler(bgw_DoWork);bgw.RunWorkerAsync();现在定义以下方法:voidbgw_DoWork(objectsender,DoWorkEventArgse){//你的工作时间。这是您的数据查询方法。CheckSsMissingDate();}voidbgw_ProgressChanged(objectsender,ProgressChangedEventArgse){//进度条.progressBar1.Value=e.ProgressPercentage;}voidbgw_RunWorkerCompleted(objectsender,RunWorkerCompletedEventArgse){//作业完成后。MessageBox.Show(@"完成");你应该使用最近在C#中实现的async/await关键字,或者你可以手动编写异步代码。参考:MSDN以上是C#学习教程:C#中长时间运行任务的进度条分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络合集。不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: