Tôi định lưu trữ tất cả các thiết lập cấu hình trong phần app.config của ứng dụng (sử dụng lớp ConfigurationManager.AppSettings
). Khi người dùng thay đổi cài đặt bằng giao diện người dùng của ứng dụng (nhấp vào hộp kiểm, chọn nút radio, v.v.), tôi định viết những thay đổi đó cho số AppSettings
. Đồng thời, trong khi chương trình đang chạy, tôi định truy cập vào AppSettings
liên tục từ một quá trình sẽ liên tục xử lý dữ liệu. Các thay đổi đối với cài đặt thông qua giao diện người dùng cần phải ảnh hưởng đến việc xử lý dữ liệu trong thời gian thực, đó là lý do tại sao quy trình sẽ truy cập liên tục AppSettings
.ConfigurationManager.AppSettings Concerns Performance
Đây có phải là ý tưởng hay về hiệu suất không? Sử dụng AppSettings
được cho là "đúng cách" để lưu trữ và truy cập các cài đặt cấu hình khi viết ứng dụng .Net, nhưng tôi lo rằng phương pháp này không dành cho tải liên tục (ít nhất là về cài đặt được đọc liên tục).
Nếu có ai có kinh nghiệm với điều này, tôi sẽ đánh giá rất cao ý kiến đóng góp.
Cập nhật: Tôi có lẽ nên làm rõ một vài điểm.
Đây không phải là ứng dụng web, vì vậy việc kết nối cơ sở dữ liệu với ứng dụng có thể quá mức cần thiết để lưu trữ cài đặt cấu hình. Đây là một ứng dụng Windows Forms.
Theo tài liệu MSDN, ConfigurationManager
là để lưu trữ không chỉ cài đặt cấp ứng dụng, mà còn là cài đặt người dùng. (Đặc biệt quan trọng nếu, ví dụ, các ứng dụng được cài đặt như một ứng dụng phần độc quyền.)
Cập nhật 2: tôi chấp nhận câu trả lời lomaxx vì Properties
không thực sự trông giống như một giải pháp tốt, mà không cần phải thêm bất kỳ các lớp bổ sung vào ứng dụng của tôi (chẳng hạn như cơ sở dữ liệu). Khi sử dụng Thuộc tính, nó đã thực hiện tất cả bộ nhớ đệm mà người khác đề xuất. Điều này có nghĩa là mọi thay đổi và lần đọc tiếp theo đều được thực hiện trong bộ nhớ, làm cho nó cực kỳ nhanh. Các thuộc tính chỉ ghi các thay đổi vào đĩa khi bạn nói rõ ràng. Điều này có nghĩa là tôi có thể thay đổi cài đặt cấu hình khi đang chạy trong thời gian chạy và sau đó chỉ thực hiện lưu cuối cùng vào đĩa khi chương trình thoát.
Chỉ để xác minh nó thực sự có thể xử lý tải tôi cần, tôi đã làm một số thử nghiệm trên máy tính xách tay của tôi và đã có thể làm 750.000 lần đọc và 7.500 viết mỗi giây bằng cách sử dụng Properties. Điều đó là quá xa và vượt xa những gì ứng dụng của tôi sẽ bao giờ thậm chí đến gần với nhu cầu mà tôi cảm thấy khá an toàn khi sử dụng Thuộc tính mà không ảnh hưởng đến hiệu suất.