进度条C#

时间:2009-11-08 17:07:14

标签: c# winforms progress-bar

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

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

InitializeLibrary()只是一个返回List

的函数

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

2 个答案:

答案 0 :(得分:9)

我这样做的方法是使用BackgroundWorker component

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

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

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

将展示如何使用进度报告的好教程是here

答案 1 :(得分:1)

您需要设置进度条的Maximum属性,以便在递增Value时计算百分比:

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