繁体   English   中英

进度条C#

[英]Progress Bar C#

我有一个进度条来显示将歌曲加载到库中的程序的状态。

    foreach (Song s in InitializeLibrary())
    {
        Library.AddSong(s);
        pBar.Value++;
        pBar.Update();
    }

InitializeLibrary()只是一个返回List的函数

问题是进度条在某个点(例如20%)之后停止“移动”,而值仍然增加。 有没有办法让它100%更新?

我这样做的方法是使用BackgroundWorker组件

使用它在后台线程上加载歌曲并将进度报告给将更新进度条的UI线程。

后台工作程序处理线程之间的所有消息传递以报告进度。

这样您就可以获得多线程的好处,而无需自己管理线程。

一个好的教程将介绍如何使用进度报告是在这里

您需要设置进度条的“ 最大”属性,以便在增加“ 值”时计算百分比:

var items = InitializeLibrary();
pBar.Maximum = items.Length;
foreach (Song s in items)
{
    Library.AddSong(s);
    pBar.Value++;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM