Безопасность потока базы данных 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 на ограниченном устройстве.