C#类内的进度条?

C#类内的进度条?,c#,oop,progress-bar,C#,Oop,Progress Bar,简单地说,从表单范围之外的类中将某个进程的进度发送回表单的好方法是什么 我有一个输入对象,一个文件路径被发送到这个对象的构造函数中,它解析这个文件。我想向处于当前运行的方法范围之外的表单中的用户显示读取此文件行的进度。最后,我将显示总体进度和每个文件的进度。向您的类中添加一个表单可以订阅的事件。UpdateProgress之类的东西。然后,您的类将每隔一段时间引发一次事件,以让表单显示进度。这里最好的方法是。它有一个特殊的事件ReportProgress(为您处理调用逻辑) 这是一种实现多线程的

简单地说,从表单范围之外的类中将某个进程的进度发送回表单的好方法是什么


我有一个输入对象,一个文件路径被发送到这个对象的构造函数中,它解析这个文件。我想向处于当前运行的方法范围之外的表单中的用户显示读取此文件行的进度。最后,我将显示总体进度和每个文件的进度。

向您的类中添加一个表单可以订阅的事件。UpdateProgress之类的东西。然后,您的类将每隔一段时间引发一次事件,以让表单显示进度。

这里最好的方法是。它有一个特殊的事件ReportProgress(为您处理调用逻辑)


这是一种实现多线程的简单方法。在实现RunWorkerCompleted事件时,请遵循a。

添加到此答案:除非您的处理在单独的线程中,并且UI线程继续运行(以更新进度条),否则这将不起作用。更新进度条时还必须调用(),因为事件处理程序将在处理线程而不是UI线程中调用。另请参见:BackgroundWorker.com。严格来说,您可以在事件处理程序中调用Application.DoEvents()。但我不建议这样,OP需要一个线程。