У меня очень длинная процедура цикла:
public void Process()
{
bool done = false;
do {
//do stuff
}while (!done);
}
что я хотел бы расколоть на биты, и у меня появилась процедура вызова, показывающая мой прогресс в каком-то пользовательском интерфейсе. Это библиотека классов, поэтому вызывающим может быть что угодно (Консольное приложение, WinForms, WebApp,...).
Было бы проще, если бы я мог:
public void Process()
{
bool done = false;
do {
//do stuff
yield return;
}while (!done);
}
Таким образом, вызывающий может продолжать вызов метода до его завершения.
Это больше напоминает работу для BackgroundWorker, но это похоже на неправильное для консольного приложения... Мне не всегда нужно многопоточность. Или это? Я имею в виду, да, я мог бы просто запустить основной поток консоли, чтобы он закончил.
Мой вопрос: могу ли я использовать "поэтапную" функциональность отложенного исполнения "yield return" без фактического возврата чего-либо?