winform程序在执行一个方法的同时,如何使用progressbar显示进度?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform程序在执行一个方法的同时,如何使用progressbar显示进度?相关的知识,希望对你有一定的参考价值。
此方法最好不要修改。
先给progressbar设置个最大值,然后你可以在那个方法的执行过程中让progressbar的Value不断增加,从而达到显示进度的目的。比如:progressbar.MaxValue = Count;
progressbar.Value = 0;
for(int i = 0;i < Count;i++)
你要做的操作
progressbar.value++;
你还可以在timer或新建一个线程,在里面根据相应的值,去对progressbar的Value进行设置。 参考技术A 用BackgroundWorker,可以注册他的Progress事件,接受进度信息。
在BackgroudnWorker里面的DoWork方法使用ReportProgress来报告进度本回答被提问者采纳 参考技术B 需要使用多线程,而且方法不修改的话,可能比较难。追问
能具体说下嘛?
参考技术C 设置他的value属性就OK了。 参考技术D 你获取进度,给控件progressbar.value赋值Winform程序及dll打包成一个可执行的exe
使用场景
通常开发的Winform程序,引用了其他类库后,在输出目录下都会产生很多DLL文件,exe执行时必须依赖这些DLL。想要Winform程序只有一个可执行exe文件,又不想打包成安装包,就可以采用该方法。
方案一
利用ILMerge将exe及dll合并成一个新的exe
ILMerge下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=17630
将ILMerge.exe复制到exe所在目录,执行以下命令
ILMerge.exe /ndebug /target:winexe /targetplatform:v4 /out:d:/output.exe input.exe /log BouncyCastle.Crypto.dll /log Dapper.dll
/targetplatform 是用来指定版本号
/log 将dll打包进output.exe中,多个dll就用多个/log指定
方案二
利用压缩软件的自解压特性
1. 切换到Winform输出目录,全选并右键添加到压缩文件
2. 修改压缩文件名后缀为.exe
3. 切换到高级选项 -> 自解压选项,设置 -> 提取后运行:./程序名.exe,模式 -> 临时模式:勾选解包到临时文件夹,安静模式:选中全部隐藏
4. 确定并压缩,会生成一个exe文件,点击可执行
以上是关于winform程序在执行一个方法的同时,如何使用progressbar显示进度?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# Winforms 应用程序中取消执行长时间运行的异步任务