Ждать задачу в течение x времени и сообщать о ходе выполнения

Мне нужен лучший дизайн для спящего Task, чем Thread.Sleep, я использую класс Task.

В моем приложении wpf я запускаю задачу, эта задача запускает еще пару задач, каждая из которых сначала входит в систему и на веб-сайт в Интернете, после входа в систему им нужно подождать пару секунд и сообщить пользователю, когда они будут продолжать и это моя проблема, потому что с Thread.Sleep я не могу сообщить о прогрессе.

Функций больше, чем входа в систему, их около 5-6, все они запрашивают Интернет-ресурс, и между ними должно быть время сна с оставшимся временем, чтобы отправить отчет в графический интерфейс, все эти 5-6 функций находятся в одна задача, но может быть много задач.

Мне нужно заставить задачу ждать, но также разрешить ей отправлять обновления в оставшееся время, чтобы перейти к графическому интерфейсу.

Есть ли у вас какие-нибудь идеи по поводу этой проблемы, как ее улучшить, может быть, у вас уже есть какие-то шаблоны проектирования для такой проблемы?

Я также слышал, что использование Thread.Sleep - плохая практика проектирования.

РЕДАКТИРОВАТЬ: Никто не знает? Что с каким-то самодостаточным таймером с ожиданием потока, например, с обработчиком ожидания, авторесетированием, кем-нибудь?

8
задан Programista 7 November 2011 в 12:31
поделиться