2009-03-26 26 views
6

Tôi có một loạt các biểu mẫu và điều hướng giữa chúng.Làm thế nào để tăng tốc độ biểu mẫu. Hiển thị

Mỗi biểu mẫu có một bộ điều khiển để tải thuộc tính từ cơ sở dữ liệu SQLite và đây là thao tác dài (khoảng 1s) không mang lại cho người dùng cảm giác tốt nhất vì biểu mẫu đang dần được vẽ.

Tôi không bận tâm về sự chậm trễ nhưng tôi muốn biểu mẫu được rút ra khi tất cả dữ liệu được tải. Tôi muốn tránh các chủ đề mới bởi vì điều này sẽ dẫn đến các vấn đề hoạt động cross-thread.

Có giải pháp nào tốt ngoài việc tăng tốc toàn bộ ứng dụng bằng cách lưu vào bộ nhớ cache dữ liệu được tải không?

Trả lời

0

Quay lại VB ngày tôi đã sử dụng API LockWindowUpdate. Vì điều này có một cửa sổ xử lý, nó nên được sử dụng cũng với WinForms. Mặc dù, chưa bao giờ thử.

4

Có một cách đơn giản để tăng tốc độ hiệu suất nhận thức của nhiều kiểm soát, đặc biệt là những người chuyên sâu dữ liệu như listviews, listboxes, hộp kết hợp, vv

Trước khi bạn cư họ gọi BeginUpdate() phương pháp và khi thực hiện gọi EndUpdate(). Điều này sẽ vô hiệu hóa việc vẽ lại kiểm soát cho đến khi bạn hoàn tất việc điền dữ liệu đó vào dữ liệu.

1

Tôi thấy rằng tải các điều khiển Winform, như hộp tổ hợp và hộp danh sách, tải nhanh hơn rất nhiều khi chúng trỏ đến Chế độ xem thay vì chính bảng, đặc biệt nếu bạn có thể giới hạn chế độ xem gọn hơn so với điều khiển để xem qua toàn bộ bảng.

2

Rất tiếc. Đây là những gì luồng là cho. "Các vấn đề hoạt động xuyên suốt" được xác định rõ và có các mẫu phổ biến để xử lý chúng. Chỉ cần giảm những nơi mà các chủ đề tương tác ở mức tối thiểu (trong trường hợp này, nó sẽ là một nơi duy nhất - sau khi dữ liệu được tải) và nó trở nên tầm thường.

Cũng có một số lớp giúp thực hiện đa luồng trong ứng dụng winforms dễ dàng hơn nhiều, vì chúng trừu tượng hóa sự tương tác giữa các luồng. BackgroundWorker (liên kết tới bài đăng trên blog về bài đăng đó) sẽ thực hiện công việc trên một chuỗi khác cho bạn và thông báo cho bạn biết khi nào được thực hiện bằng cách kích hoạt sự kiện trên chuỗi giao diện người dùng. Bạn nhận được những lợi ích của đa luồng mà không có bất kỳ cạm bẫy nào.

Các vấn đề liên quan