2012-03-28 27 views
6

Tôi đang sử dụng SQLite từ system.data.sqlite.orgMột SQLiteConnection cho mỗi chủ đề?

Chúng tôi cần truy cập cơ sở dữ liệu từ nhiều luồng (vì nhiều lý do). Tôi đã đọc rất nhiều về khả năng an toàn của chủ đề sqlite (chế độ truy cập đồng bộ mặc định là tốt cho tôi).

Tôi tự hỏi nếu có thể chỉ cần mở một kết nối cho mỗi chuỗi. Có phải bất cư thứ gì như thế này đều được? Tôi thực sự không quan tâm đến điều kiện chủng tộc (yêu cầu thứ gì đó chưa được chèn vào). Tôi chỉ quan tâm đến thực tế là có thể truy cập dữ liệu bằng cách sử dụng một đối tượng SQLiteConnection cho mỗi chủ đề.

Trả lời

3

Có. Trong thực tế, đó là cách thích hợp, như SQLite không phải là chủ đề an toàn (theo mặc định. Bạn có thể làm cho nó threadafe biên dịch với một số tùy chọn). Và chỉ để đảm bảo nó hoạt động: SQLite đang được sử dụng trong một số trang web nhỏ, vì vậy đa luồng là có :)

đây biết thêm thông tin: http://www.sqlite.org/faq.html#q6

4

Với bạn sử dụng một kết nối riêng biệt cho mỗi chủ đề mà bạn cần sử dụng tốt.

Từ docs

Lưu ý rằng SQLiteConnection dụ không đảm bảo được thread an toàn. Bạn nên tránh sử dụng cùng một lúc SQLiteConnection trong một số chủ đề cùng một lúc. Bạn nên mở một kết nối mới cho mỗi luồng và đóng nó khi hoàn thành công việc.

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