c# - 有没有办法在启动后将数据发送到 BackgroundWorker?

标签 c# multithreading concurrency parameters backgroundworker

我知道您可以在首次启动 backgroundworker 时通过 RunWorkerAsync 函数调用传递参数,但是您可以在它已经启动后向它传递数据吗?或者我是否需要创建自己的并发形式来处理从不同线程向它传递的数据?

最佳答案

您需要添加一些同步,并为后台工作人员提供一个从中读取数据的位置。

您不能(轻易地)将数据发送给后台工作人员。有一个工作人员可以查找数据的地方要容易得多,而且您可以只添加要处理的数据。只需确保在这一点上进行同步,因为(至少)两个线程可能会同时访问数据。

关于c# - 有没有办法在启动后将数据发送到 BackgroundWorker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1374590/

相关文章:

c# - 具有不同类型的Elasticsearch map 属性

c# - 在循环条件之外为循环条件声明变量是否更快?

c# - 将列表中的子集保存到对象中

C# 优化 : Inserting 200 million rows into database

c - 如何在C/Cilk中以线程安全的方式打印?

C#并行,如何设置线程数

java - 这是饥饿吗?

python - 什么是 Ruby 等同于 Python 的多处理模块?

.net - 哈希表并发

java - 如何安全地迭代线程内的集合?