2013-06-11 49 views
0

我想更新从不会复制从班的BackgroundWorker更新进度条

在我的副本类我有类进度条

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

您应该将您的事件更改为EventHandler<ProgressChangedEventArgs>,以便它将带有progress属性的派生类型。

+0

它确实花了我一段时间才能理解这项工作,但它确实有效。谢谢! –

2

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

ProgressChangedEventArgs有一个命名的属性:ProgressPercentage