У меня есть приложение .net 4.0 выполняет поиск в тяжелой базе данных. Я хочу, чтобы эти операции были асинхронными, а также должны быть отменены. Async и ждут отлично работает в .net 4.5, который также имеет методы execereaderasync для операций Async db. Но я не могу перейти на .net 4.5. Программирование на основе задач может использоваться, но асинхронизация поиска db является приоритетной. Может ли кто-нибудь предложить возможные варианты достижения этого в .net 4.0Асинхронный запрос из базы данных с помощью C# 4.0
ответ
Вы можете порезать зубы и использовать Asynchronous Programming Model (APM), что все эти учебные материалы говорят о прошлом. ADO.NET (по крайней мере, поставщик SQL Server) поддерживал его с .NET 2.0. В частности, вы хотите использовать методы BeginExecute
/EndExecute
и Cancel
на SqlCommand
.
Вы можете использовать пакет асинхронного таргетинга (Microsoft.Bcl.Async), чтобы получить async-wait для работы с .NET 4.0. Это актуально blog на msdn. Направленный пакет позволяет использовать AWAIT в Visual Studio 2012 (и более новых версии) при ориентации любого из следующих платформ (или более поздних версий):
- .NET Framework 4.0 (с KB2468871)
- Silverlight 4
- Windows Phone 7.5
- и переносные библиотеки классов, предназначенные для этих платформ.
Этот способ, как только вы сможете перенести приложение на .NET 4.5, это будет легкий переход.
Я думаю, что использование async и ожидания не будет вполне достаточным, потому что 4.5 имеет методы executereaderasync, которые 4.0 doea не имеют. Обычный исполнитель - синхронный –
- 1. Асинхронный чтение из базы данных
- 2. C# асинхронный HTTP-запрос
- 3. Настройте асинхронный веб-запрос с извлечением базы данных
- 4. Запрос данных иногда асинхронный
- 5. Запрос базы данных из программы Silverlight/C#
- 6. Асинхронный многократный запрос из различных источников данных или баз данных
- 7. C# получить sql-запрос из базы данных
- 8. .nrt 4.0 C# резервная копия базы данных
- 9. Асинхронный HTTP POST в C# 4.0
- 10. запрос данных из базы данных
- 11. запрос базы данных с помощью arraylist
- 12. Асинхронный запрос к процессу с помощью python
- 13. Асинхронный запрос в базе данных
- 14. Запрос базы данных с помощью конструктора
- 15. запрос моей базы данных с помощью курсора
- 16. ASP.net C# Запрос базы данных
- 17. Запрос две базы данных с помощью LINQ
- 18. Ускорить запрос базы данных с помощью функции
- 19. резервного копирования базы данных из базы данных прикрепленных с программой в C# с помощью программирования
- 20. Отображение данных из базы данных с помощью хранимой процедуры C#
- 21. Запрос поля BLOB из базы данных Oracle с помощью PHP
- 22. Запрос базы данных SQLite из файла с помощью Javascript
- 23. Запрос базы данных рельсов из ClientSide с помощью jQuery
- 24. Запрос IntervalTree из базы данных?
- 25. Запрос из базы данных [Razor]
- 26. Запрос Sql из базы данных
- 27. Запрос UserID из базы данных
- 28. Чтение изображения из базы данных с помощью C#?
- 29. Чтение из базы данных с помощью PHP
- 30. Выберите запрос из базы данных
Мне нужен способ, которым я могу использовать выше методы асинхронно в .net 4.0 –
Если вы хотите, чтобы вы использовали их с ключевым словом 'async', вы можете использовать приведенный выше ответ, чтобы получить поддержку самого ключевого слова. NET 4.0, а затем используйте семейство методов TaskFactory.FromAsync для получения ожидаемой задачи из пары методов BeginExecute/EndExecute. Тем не менее, вам все равно придется отменить старый путь. – cynic
Да, но я думаю, что запуск SQL-запросов не будет выполняться в асинхронном режиме, только код .Net будет работать в асинхронном режиме. После перехода на SQL Server SQL Server запустит его в синхронном режиме. Это то, что я думаю –