Tôi có giao diện người dùng rất phức tạp với thanh trạng thái thay đổi liên tục với nhiều loại thông báo trạng thái và giao diện người dùng có điều khiển biểu đồ phức tạp và bản đồ địa lý được chỉ định được tải.Cập nhật hàng loạt trên UI phức tạp
Giờ đây, bối cảnh dữ liệu của các khu vực nhỏ nhưng phức tạp này có các Chế độ xem phức tạp như StatusBarVM, ChartingVM, GeoMapVM vv ... Chúng triển khai INotifyPropertyChanged và ObservableCollections.
Tính cập nhật của tôi Tôi thấy rằng tôi có khoảng 5000 mục UI (lables, progressbars, điểm dữ liệu biểu đồ, bgcolorsbrushes, v.v.) đang thay đổi với tốc độ 1000 lần cập nhật mục dữ liệu mỗi giây.
Cách tốt nhất để đạt được bản cập nhật dữ liệu hàng loạt này trên giao diện người dùng WPF là gì?
Mô hình ràng buộc của WPF có khả năng cho các bản cập nhật lớn như vậy không? Nếu thế thì sao? Bởi vì tôi thấy nó không tối ưu trong trường hợp của tôi. Tôi đang sử dụng bgworker (cho progressbars) là tốt và sử dụng DIspatcher BeginInvoke ... nhưng điểm là ngay cả sau đó các bản cập nhật treo thread UI như các tin nhắn dispatcher đang nhận được xếp hàng chờ đợi để được hoàn thành.
Tôi không thể thực hiện ảo hóa vì trạng thái là thời gian thực và tôi phải xem tất cả trên giao diện người dùng trước mặt mình. Tôi không thể bỏ lỡ chúng ngay cả một vài giây (ví dụ: dữ liệu địa lý của vệ tinh khác nhau) .
Hãy giúp tôi xác định một công cụ chính xác hoặc một số cách để đạt được giao diện người dùng WPF phức tạp nhưng có tính phản hồi cao. Có phải Dispatcher.PushFrame() không?
điều này trông giống như một triển khai tốt, mặc dù tôi phải hỏi là bản cập nhật giao diện người dùng dựa trên bộ đệm (theo sau cho các công nghệ giao diện người dùng khác như ASP.NET, WinForms, v.v.) giống như bạn đã thảo luận ở đây? –
Tôi không chắc chắn, thuật ngữ "cập nhật giao diện người dùng dựa trên bộ đệm" không phải là cái tôi nhận ra. – Bevan
Bạn nên cân nhắc sử dụng khung công tác này để cập nhật hàng loạt: [Reactive Extensions] (https://rx.codeplex.com/), xem phần bộ đệm theo thời gian. – Thomas