简体   繁体   English

从班级的BackgroundWorker更新进度栏

[英]Update Progress bar from Class' BackgroundWorker

I am trying to update progress bar from the class that does the copying 我正在尝试从执行复制的类中更新进度栏

In the my copy class I have 在我的复印课上

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);
        }

And in the main class 而在主班

CopyList[i].Copy_OnProgressChange += CopyProgressMessage;

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

As you can see I can not pass percentage from ProgressChangedEventArgs to eventhandler. 如您所见,我无法将ProgressChangedEventArgs的百分比传递给eventhandler。 Is there an easy way to fix this? 有简单的方法可以解决此问题吗?

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

It doesn't look like your event handler isn't structured correctly... It requires the second argument to be: ProgressChangedEventArgs instead of EventArgs... 看来您的事件处理程序的结构不正确...它要求第二个参数是: ProgressChangedEventArgs而不是EventArgs ...

ProgressChangedEventArgs has a property named: ProgressPercentage . ProgressChangedEventArgs具有一个名为的属性: ProgressPercentage

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM