前面写了一个异步的进度条,再来一个委托的.
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i <=100000; i++)
{
this.Invoke(new ShowProgressDelegate(ShowProgress), new object[] { 100000, i, “执行进度” });
}
}
#region 异步调用进度表
public delegate void ShowProgressDelegate(int totalStep, int currentStep, string progName);
/// <summary>
/// 刷新进度
/// </summary>
/// <param name="totalStep"></param>
/// <param name="currStep"></param>
/// <param name="progName"></param>
public void ShowProgress(int totalStep, int currStep, string progName)
{
progressBarX1.Visible = true;
progressBarX1.Maximum = totalStep;
progressBarX1.Value = currStep;
StatusLabel_Type.Text = progName + Math.Round((double)currStep * 100 / (double)totalStep, 0) + "%";
statusStrip1.Refresh();
if (totalStep == currStep)
{
progressBarX1.Visible = false;
StatusLabel_Type.Text = "就绪";
}
}
#endregion