Tôi phải thiết kế và thực hiện một cách để giải quyết các quy trình đang chạy trong ứng dụng khách/máy chủ. Một quá trình chạy dài điển hình sẽ có thể mất 2-3 phút. Tôi cũng cần báo cáo tiến độ cho giao diện người dùng trong thời gian chờ đợi và giữ cho giao diện người dùng phản hồi.Thông báo tiến trình trong WCF cho các quy trình chạy dài - Cách thực hiện?
Có những trong tâm trí của tôi, tôi mặc dù một số giải pháp:
Một yêu cầu async để bắt đầu quá trình đó bắt đầu quá trình server-side và trả về một LRPID giao (Long Running Process ID) sau đó thăm dò định kỳ từ khách hàng sử dụng LRPID đó. (Pro: đơn giản để triển khai, không có tường lửa phiền xung quanh Côn: Unelegant, tiêu thụ tài nguyên, vv)
Sử dụng một duplex ràng buộc (như NetTcpBinding) và bắt đầu callbacks từ máy chủ như tiến bộ đang được thực hiện (Pro: Elegant, hiệu quả, Côn: Triển khai cơn ác mộng)
[gợi ý của bạn ???]
Điều gì sẽ xảy ra với bạn?
Ứng dụng phía máy khách được viết bằng gì? –
Cơn ác mộng triển khai? Tại sao, vì IIS/WS? Sau đó, không sử dụng chúng. –
@Daniel Auger: Ứng dụng khách được viết trong WPF –