Безопасность потока базы данных SQL Server CE

Я создаю приложение для интеллектуальных устройств vb.net, которое использует базу данных SQL Server CE 3.5 и набор данных в памяти, связанный с элементами управления вводом в качестве посредника.

Я хотел бы максимизировать производительность пользовательского интерфейса, поместив подпрограммы обновления базы данных в отдельный поток, но меня беспокоит возможность того, что приложение попытается выполнить обновление до завершения другого. Это реальная возможность или SQL Server CE может ставить в очередь обновления?

Microsoft заявляет: "Любые открытые статические (Shared в Visual Basic) члены этого типа являются поточно-ориентированными. Любые члены экземпляров не гарантируют поточно-ориентированные" в документации для SqlCeDataAdapter класс, но у меня нет достаточного опыта в вопросе многопоточности, чтобы интерпретировать это правильно.

1 ответ

Решение

Ни один из объектов SQL Server CE не является потокобезопасным, поэтому используйте только один поток для фоновых обновлений. Кроме того, рассмотрите возможность использования API TableDirect для оптимальной производительности INSERT и UPDATE на ограниченном устройстве.

Другие вопросы по тегам