Как работать с SQLite в асинхронном проекте
SQLite не является асинхронным, и открытые методы Microsoft.Data.Sqlite ADO.net реализуются синхронно под капотом.
Мой вопрос: как бы вы использовали SQLite в проекте API asp.net core 5, который мог бы выиграть от асинхронного кода, а также ключевых слов async / await для его координации?
Я вижу два варианта
- использовать "подделку"
*Async
методы и теряют преимущества асинхронного кода для частей кода, которые касаются db. Если я правильно понимаю, в ядре .net блокировка потока не приведет к тупикам (https://blog.stephencleary.com/2017/03/aspnetcore-synchronization-context.html). Если я правильно понимаю, это будет действовать как синхронный код, выполняющийся в потоке пула потоков, с добавленными накладными расходами на механизм async / await. - писать только синхронный код и терять преимущества для частей кода
Как вы думаете, какой из них лучше?
Спасибо!
1 ответ
Я бы предпочел использовать синхронные методы, но это не слишком сильное предпочтение. Единственная причина, по которой я бы предпочел
Чего вы определенно хотите избежать, так это