Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中同时运行两个函数#_C#_Multithreading - Fatal编程技术网

C# 在C中同时运行两个函数#

C# 在C中同时运行两个函数#,c#,multithreading,C#,Multithreading,我在我的项目中创建了一个类库,可以扫描一系列文件。在我使用这个DLL作为参考的主项目中,我想创建一个进度条,显示到目前为止扫描了多少文件 dll类使用foreach循环,因为它的目的是将每个文件转换为哈希代码。foreach循环用于将文件的每个转换段连接在一起,这样我就可以有一个512位长的代码,然后它进入下一个文件 我在dll类中定义了一个变量--> 此变量在foreach循环结束时更新 现在在我的主项目中,我想在类库项目中的函数运行的同时使用这个变量来更新我的进度条 例如: DLL.func

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

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

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

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

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

例如:

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

如果有任何关于如何实现此功能的提示,我将不胜感激。

您的主程序将必须使用线程调用您的函数,可以帮助您实现此功能


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

您的主程序必须使用线程调用您的函数,可以帮助您完成此操作

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

您可以使用执行工作和报告进度

worker.WorkerReportsProgress = true;
现在,您可以通过订阅的事件触发此进度报告

worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);
在此过程中,您可以创建一个进度条,该进度条可以根据此由您的方法触发的
worker\u ProgressChanged
事件进行自我更新。

您可以使用来执行工作和报告进度

worker.WorkerReportsProgress = true;
现在,您可以通过订阅的事件触发此进度报告

worker.ProgressChanged += new ProgressChangedEventHandler(worker_ProgressChanged);

在此过程中,您可以创建一个进度条,该进度条可以根据您的方法触发的
worker\u ProgressChanged
事件进行自我更新。

基本上是任何类型的线程
BackgroundWorker
Task
ThreadPool
Thread
,等等。也许可以从
BackgroundWorker
的MSDN示例开始。变量在foreach每次迭代结束时更新,或者在foreach循环执行后更新,我刚刚尝试过它以及并行调用等,但它不起作用,这就是我在这里发布的原因!第一个函数可以工作,但第二个函数基本上不支持任何类型的线程
BackgroundWorker
Task
ThreadPool
Thread
,等等。也许可以从
BackgroundWorker
的MSDN示例开始。变量在foreach每次迭代结束时更新,或者在foreach循环执行后更新,我刚刚尝试过它以及并行调用等,但它不起作用,这就是我在这里发布的原因!第一个函数起作用,但第二个函数不起作用。这不起作用,因为所有内容都将在同一线程上运行。这不起作用,因为所有内容都将在同一线程上运行。