Мне нужно разработать и реализовать способ работы с длительными процессами в приложении клиент / сервер. Типичный длительный процесс может занять 2-3 минуты. Тем временем мне также нужно сообщать о прогрессе в пользовательский интерфейс и поддерживать отзывчивость пользовательского интерфейса.
Имея это в виду, я подумал о нескольких решениях:
Один асинхронный запрос для запуска процесса, который запускает процесс на стороне сервера и возвращает назначенный LRPID (идентификатор длительного выполнения) , затем периодически опрашивает клиента, используя этот LRPID. ( Pro : проста в развертывании, нет проблем с межсетевым экраном Con : неэлегантно, потребляет много ресурсов и т. Д.)
Используйте дуплексную привязку (например, NetTcpBinding) и инициируйте обратные вызовы с сервера по мере продвижения ( Pro : элегантный, эффективный, Con : кошмар развертывания)
[Ваше предложение ???]
Что бы вы сказали по этому поводу?