C# 持续通知表格其他班级的进度

C# 持续通知表格其他班级的进度,c#,forms,events,delegates,progress,C#,Forms,Events,Delegates,Progress,我想上传一个类中的文件,该类不知道上传进度应该显示在什么形式。是否有办法通过事件或委托通知它? 此时,我可以直接设置进度,但我希望该类不太依赖于视图实现。 非常感谢。您需要在Upload类上实现某种“ProgressMake”事件,然后表单将订阅该事件(或者由一些中介(如控制器)订阅,如果这是您的模式)。然后,当类检测到数据已发送时,应该引发“ProgressMake”事件 这种情况如何发生取决于类用于执行上载的内容。如果您使用的是StreamWriter,不幸的是,这些类没有监视进度的“反应”

我想上传一个类中的文件,该类不知道上传进度应该显示在什么形式。是否有办法通过事件或委托通知它? 此时,我可以直接设置进度,但我希望该类不太依赖于视图实现。
非常感谢。您需要在Upload类上实现某种“ProgressMake”事件,然后表单将订阅该事件(或者由一些中介(如控制器)订阅,如果这是您的模式)。然后,当类检测到数据已发送时,应该引发“ProgressMake”事件


这种情况如何发生取决于类用于执行上载的内容。如果您使用的是StreamWriter,不幸的是,这些类没有监视进度的“反应”事件。一切都没有失去;您应该能够从用于触发某种“WritePerformed”的类派生,您可以使用该类触发ProgressMake。请查看以下答案:。这应该适用于几乎所有的作家。如果您使用的是一些不那么抽象的东西,比如套接字,那么您应该能够很好地跟踪推送到连接中的字节数。

让类公开一个表单可以订阅的事件,以便获得进度通知(进度更改->事件触发)。非常像BackgroundWorker所做的。查看中的链接。是的,我能够跟踪发送的字节数,我在循环中以块的形式发送它。。。泰克斯:这很容易,也很有希望,我会看看:)