关于开一新进程显示进度条的问题

问题描述

本人C#新手,网上找到一段代码适合VB.net的,如下:#Region"---------------再开一个线程显示进度条---------------"PrivateSubwaitstart()Me.Cursor=Cursors.WaitCursorBackgroundWorker1.RunWorkerAsync()EndSubPrivateSubwaitend()BackgroundWorker1.CancelAsync()Me.Cursor=Cursors.DefaultEndSubPrivateSubBackgroundWorker1_DoWork1(ByValsenderAsObject,ByValeAsSystem.ComponentModel.DoWorkEventArgs)HandlesBackgroundWorker1.DoWorkDimworkerAsSystem.ComponentModel.BackgroundWorker=CType(sender,System.ComponentModel.BackgroundWorker)showProgress(worker)EndSubPrivateSubshowProgress(ByValworkerAsSystem.ComponentModel.BackgroundWorker)DimprogressFormAsNewfrmTaskProgress()progressForm.Show()progressForm.Refresh()WhileNotworker.CancellationPendingIfprogressForm.ProgressIndicator.Value=100ThenprogressForm.ProgressIndicator.Value=0ElseprogressForm.ProgressIndicator.Value+=10EndIfSystem.Threading.Thread.Sleep(50)EndWhileprogressForm.ProgressIndicator.MarqueeAnimationSpeed=0progressForm.Hide()progressForm.Dispose()EndSub#EndRegion

主要是遇到一些耗时程序时出现一个进度条提示用户等待:waitstart()耗时程序……waitend()现在把这代码转到C#就不好用了:#region"---------------再开一个线程显示进度条---------------"privatevoidwaitstart(){this.Cursor=Cursors.WaitCursor;backgroundWorker1.RunWorkerAsync();}privatevoidwaitend(){backgroundWorker1.CancelAsync();this.Cursor=Cursors.Default;}privatevoidshowProgress(System.ComponentModel.BackgroundWorkerworker){frmTaskProgressprogressForm=newfrmTaskProgress();progressForm.Show();progressForm.Refresh();while(!worker.CancellationPending){if(progressForm.ProgressIndicator.Value==100){progressForm.ProgressIndicator.Value=0;}else{progressForm.ProgressIndicator.Value+=10;}System.Threading.Thread.Sleep(50);}progressForm.ProgressIndicator.MarqueeAnimationSpeed=0;progressForm.Hide();progressForm.Dispose();}privatevoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse){System.ComponentModel.BackgroundWorkerworker=(System.ComponentModel.BackgroundWorker)sender;showProgress(worker);}#endregion

请指点是哪里出问题了?

解决方案

解决方案二:
UpdateProgress进度条显示与取消异步功能//取消执行异步代码<scripttype="text/javascript"language="javascript">//取得PageRequestManager类的实例varpageManager=Sys.WebForms.PageRequestManager.getInstance();//设置当引发initializeRequest事件时便运行事件处理函数initializeRequestpageManager.add_initializeRequest(initializeRequest);functioninitializeRequest(sender,args){if(pageManager.get_isInAsyncPostBack()){args.set_cancel(true);}}//如果当前正在处理一个异步回发而且此异步回发是由“取消加载...”按钮所引发的话,//就调用PageRequestManager实例的abortPostBack方法来取消异步回发。functionAbortPostBack(){if(pageManager.get_isInAsyncPostBack()){pageManager.abortPostBack();}}</script>//取消加载按钮<asp:UpdatePanelID="UpdatePanel1"runat="server"><ContentTemplate><asp:LabelID="lbTimer"runat="server"></asp:Label><br/><asp:ButtonID="btnCommit"runat="server"Text="单击我,将开始加载Web窗体页的数据..."onclick="btnCommit_Click"/></ContentTemplate></asp:UpdatePanel></div><asp:UpdateProgressID="UpdateProgress1"runat="server">//延迟5秒进度条消失protectedvoidbtnCommit_Click(objectsender,EventArgse){System.Threading.Thread.Sleep(5000);//延时5秒钟lbTimer.Text=DateTime.Now.ToLongTimeString();//5秒后进度条将消失}//加载进度条<asp:UpdateProgressID="UpdateProgress1"runat="server"><ProgressTemplate><divstyle="font-size:xx-small">服务器加载中...<imgsrc="wait.gif"/><inputid="cmdCancel"onclick="AbortPostBack()"type="button"value="取消加载..."/></div></ProgressTemplate></asp:UpdateProgress></form>
解决方案三:
也许你没有把backgroundWorker1_DoWork挂在你的backgroundWorker1.DoWork事件上?

时间: 2024-11-01 01:41:27

关于开一新进程显示进度条的问题的相关文章

在ASP.NET中显示进度条

asp.net|显示 对于加载时间比较长的ASP.NET页面,我们可以在客户端浏览器中显示进度条来显示页面正在装载.下面就是具体的实现过程: 新建项目,名字为WebPortal,在项目类型中选择Visual C#项目或者Visual Basic项目都可: 在模板类型中选择ASP.NET Web应用程序: 位置里输入:http://localhost/WebPortal: 添加新项:名字为ShowProgress的Web窗体. 在您的Web窗体ShowProgress.aspx上添加任何其他的We

C#实现在弹出窗口中显示进度条

在C#中要实现显示进度条,只要通过C#子线程控制进度条即可.至于弹出一个模式窗口来 显示进度条,则可以按照子线程的思路稍作修改. C#进度条窗体 首先是进度条窗体,需要在上面添加进度条,然后去掉ControlBox.除此外,还要增加一 个方法,用来控制进度条的增加幅度,具体如下: /// < summary> /// Increase process bar /// < /summary> /// < param name="nValue">the

cocoa touch-转码mp3格式时显示进度条。

问题描述 转码mp3格式时显示进度条. 使用 LAME 将.caf音频文件编码为.mp3文件. 只有一个问题,需要计算转换文件的时间,用UIProgressView给用户显示转换进度,这点实现不了. NSArray *dirPaths; NSString *docsDir; dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); docsDir = [dirPaths

在android不显示进度条对话框的问题

问题描述 在android不显示进度条对话框的问题 进度条对话框在Android程序中显示不出来,我找不出问题的原因.使用了如下代码来显示进度条对话框: func{ progressdialog.show(); .... ..... anotherfunction(); listview.setAdapter(); progressdialog.dismiss(); } 当.show() 命令执行以后,进度条对话框就会显示.但是当otherfucntion()方法被调用后,之前显示的进度条对话框

页面加载显示进度条

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta h

Python显示进度条的方法_python

本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧.分享给大家供大家参考.具体方法如下: 首先,进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果. 进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条? 最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可

网页加载时页面显示进度条加载完成之后显示网页内容_javascript技巧

现在网上有很多网页加载进度条 ,但大多都是时间固定的. 下面的当查询大量数据时,网页加载较慢,在网页加载时,显示进度条,当网页加载完成时,进度条消失,显示网页已经加载完成的内容. 复制代码 代码如下: <html> <script language=VBScript> Dim Bar, SP Bar = 0 SP = 100 Function Window_onLoad() Bar = 95 SP = 10 End Function Function Count() if Bar

JS插件plupload.js实现多图上传并显示进度条_javascript技巧

本文实例为大家分享了plupload.js多图上传的具体代码,供大家参考,具体内容如下 HTML代码: <!DOCTYPE html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">

在线等,,请问如何在客户端显示进度条啊?

问题描述 在一个用spring.ibatis做的javaweb项目中,有一个操作比较耗时间,我想在客户端显示进度条我做了一个进度条显示框,见下面的代码在需要的地方newBatchPrintDialog(100/list.size());最后,进度条是出来了,但却是在服务器端显示出来的,我需要的是在客户端显示啊!请教大家该怎么办?还有进度条有什么开源的组件可以用吗?准确一点的显示进度的谢谢大家!!!importjava.awt.event.WindowAdapter;importjava.awt.