从Class'BackgroundWorker更新进度条

时间:2013-06-11 15:14:28

标签: c#

我正在尝试从执行复制的类中更新进度条

在我的副本课程中我有

public event EventHandler Copy_OnProgressChange;

private void CopyWorker_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
        {
            EventHandler handler = Copy_OnProgressChange;
            if (handler != null) handler(this, e);
        }

在主要班级

CopyList[i].Copy_OnProgressChange += CopyProgressMessage;

    void CopyProgressMessage(object sender, EventArgs e)
    {
      //update progressBar with percentage
    }

如您所见,我无法将ProgressChangedEventArgs中的百分比传递给eventhandler。有没有一种简单的方法来解决这个问题?

2 个答案:

答案 0 :(得分:2)

您应该将事件更改为EventHandler<ProgressChangedEventArgs>,以便它将使用progress属性传递派生类型。

答案 1 :(得分:2)

看起来你的事件处理程序结构不正确......它需要第二个参数:ProgressChangedEventArgs而不是EventArgs ......

ProgressChangedEventArgs有一个名为ProgressPercentage的属性。