c# - 添加时循环列表

标签 c# loops backgroundworker

我在 c-sharp (winforms) 中构建了我的系统,但遇到了一个问题。在我看来——我的图形界面——我开始了一个相当繁重的算法,它在每个循环中将一个结果添加到我认为的列表中。该算法在演示者(MVP 模式)中运行,使用后台 worker - 使 View 不会卡住。正如我之前所说,该算法在一个循环中运行,并且由于它很重,所以我想在算法的结果进来时对其进行处理。

查看:

...
public List<string> Results { get; }
...
_presenter.RunAlgorithmAsync();
//Start processing results
...

演示者中的后台 worker :

...
_view.Results.Add(result);
...

总而言之,如何在后台工作人员添加列表的同时开始处理列表?当然,backgroundworker 可以比列表的处理更快地工作,反之亦然 - 处理可能必须等待结果到达列表,并且列表需要能够建立一堆结果。

我知道这个问题可能比较模糊,但如果你问我问题,我相信我可以更好地定义问题。

最佳答案

使用队列并让两个线程将其视为 producer and consumer .

关于c# - 添加时循环列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4492786/

相关文章:

c# - 浏览控件和组件

c# - 访问 Azure 队列存储的 IIS 托管服务

JavaScript 问题。我正在学习 for 循环和数组如何与方法一起工作,不知道为什么我在控制台中收到 NAN 消息

c# - 后台worker中的进度条和后台运行方法

c# - 后台 worker 可以有一个通用的方法吗?

c# - 使用 BackgroundWorker 更新 C# Chart

c# - + 带字符串的 C# 运算符

使用派生接口(interface)的 C# 接口(interface)实现

jquery - 循环遍历列表元素,如果列表元素包含另一个列表,则添加类

r - 使用 R 中的不同名称保存循环生成的栅格名称