添加循环列表

Ben*_*ler 2 c# loops backgroundworker

我用c-sharp(winforms)构建了我的系统,我遇到了一个问题.在我看来 - 我的图形界面 - 我正在开始一个非常繁重的算法,在每个循环中将结果添加到我视图中的列表中.该算法使用backgroundworker在演示者(MVP模式)中运行 - 使视图不会冻结.正如我之前所说的那样,算法在一个循环中运行,因为它太重了,我想在它们进来时处理算法的结果.

视图:

...
public List<string> Results { get; }
...
_presenter.RunAlgorithmAsync();
//Start processing results
...
Run Code Online (Sandbox Code Playgroud)

演示者中的背景工作者:

...
_view.Results.Add(result);
...
Run Code Online (Sandbox Code Playgroud)

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

我意识到这个问题可能很模糊,但如果你问我问题,我相信我可以更好地定义问题.

Kar*_*tel 5

使用队列并让两个线程将其视为生产者和消费者.