Winform中使用进度条的一个例子

因为在winform程序中,UI线程负责界面相关的工作。

Winform中使用进度条的方法有很多,可以直接创建一个新的线程Thread执行耗时的方法;也可以使用线程池。

例如:

//使用线程池异步执行longTime方法,不阻塞UI线程
System.Threading.ThreadPool.QueueUserWorkItem(_ =>
{
    DoSomething();
}

如果想使用进度条,可以模拟进度操作,在一个循环内,

//使用线程池异步执行longTime方法,不阻塞UI线程
System.Threading.ThreadPool.QueueUserWorkItem(_ =>
{
    DoSomething();
    //模拟更新进度条
    UpdateProgress(total, i);
}

/// <summary>
/// 模拟更新进度条
/// </summary>
/// <param name="total">总进度</param>
/// <param name="value">当前进度</param>
private void UpdateProgress(int total, int value)
{
    this.BeginInvoke(new Action(() =>
    {
        this.progressBar1.Minimum = 0;
        this.progressBar1.Maximum = total;
        this.progressBar1.Value = value;
    }));
}
原文地址:https://www.cnblogs.com/fanyong/p/3059080.html