Ich muss einen Weg entwerfen und implementieren, um mit lang laufenden Prozessen in einer Client/Server-Anwendung umzugehen. Ein typischer lang laufender Prozess würde/könnte 2-3 Minuten dauern. Ich muss auch Fortschritte an die UI in der Zwischenzeit zu berichten und halten die UI reaktionsschnell.
Mit diesen Gedanken im Hinterkopf habe ich mir ein paar Lösungen ausgedacht:
-
Eine asynchrone Anforderung zum Starten des Prozesses, die den serverseitigen Prozess startet und eine zugewiesene LRPID (Long Running Process ID) zurückgibt dann regelmäßig vom Client mit dieser LRPID abfragen. ( Pro Einfach zu implementieren, keine Firewall-Probleme Betrug : Unelegant, ressourcenaufwendig usw.)
-
Verwenden Sie eine Duplexbindung (z. B. NetTcpBinding) und initiieren Sie Rückrufe vom Server, wenn Fortschritte gemacht werden ( Pro : Elegant, effizient, Betrug : Einsatz-Albtraum)
-
[Ihr Vorschlag???]
Was ist Ihre Meinung dazu?