0

我在我的项目中创建了一个扫描一系列文件的类库。在我使用此 DLL 作为参考的主项目中,我想创建一个进度条,显示到目前为止已扫描了多少文件。

dll 类使用 foreach 循环,因为它的目的是将每个文件转换为哈希码。foreach 循环已用于将文件的每个转换段连接在一起,这样我就可以拥有一个 512 位长的代码,然后继续处理下一个文件。

我在 dll 类中定义了一个变量 -->

public static int value_ = 0;

此变量在 foreach 循环结束时更新。

现在在我的主项目中,我想使用这个变量来更新我的进度条,同时我的类库项目中的函数正在运行。

例如 :

DLL.function();
pb.value = value_;

我将不胜感激有关如何实现这一点的任何提示。

4

2 回答 2

3

您可以使用后台工作人员来完成工作并报告进度。

worker.WorkerReportsProgress = true;

现在,您可以通过订阅的事件触发此进度报告。

worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);

这样做时,您可以创建一个进度条,该进度条可以基于此worker_ProgressChanged事件自行更新,由您的方法触发。

于 2013-05-08T20:32:57.970 回答
0

您的主程序必须使用线程调用您的函数,后台工作人员可以帮助您。

要更新进度条,您必须查看事件和委托。每次处理项目时,都可以引发事件。然后你的主程序可以处理这个事件并更新进度条。

于 2013-05-08T20:31:03.510 回答