我在 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/