Я построил свою систему в c-sharp (winforms) и столкнулся с проблемой. На мой взгляд - мой графический интерфейс - я запускаю довольно сложный алгоритм, который в каждом цикле добавляет результат в список в моем представлении. Алгоритм работает в презентере (шаблон MVP) с использованием фонового работника, что позволяет представлению не зависать. Как я уже говорил, алгоритм работает в цикле, и, поскольку он очень тяжелый, я хочу обработать результаты алгоритма по мере их поступления.
Вид:
...
public List<string> Results { get; }
...
_presenter.RunAlgorithmAsync();
//Start processing results
...
Фоновая работа в докладчике:
...
_view.Results.Add(result);
...
Подводя итог, как я могу начать обработку списка, пока к нему добавляется фоновый работник? Конечно, фоновый работник может работать быстрее, чем обработка списка, и наоборот - при обработке, возможно, придется ждать, пока результаты попадут в список, и список должен быть в состоянии создать стек результатов. *
Я понимаю, что этот вопрос может быть размытым, но если вы зададите мне вопросы, я уверен, что смогу лучше определить проблему.