2011-10-03 2 views
7

J'essaye d'écrire un serveur asynchrone qui interroge une base de données de SQL Server et suis inquiet que mon côté de DB soit trop synchrone. Plus précisément, je peux appeler ExecuteReader de manière asynchrone, mais je ne peux pas alors appeler reader.Item de manière asynchrone et c'est là que 57% du temps est passé (bloquant mon précieux fil!).Asynchronous ADO.NET

Est-ce le plus asynchrone que je peux faire avec ADO.NET ou existe-t-il un moyen asynchrone de faire aussi reader.Item?

+1

... donc il est '' C# ou '' F #? – balexandre

+0

Je sais exactement ce que vous voulez dire - je me suis toujours demandé pourquoi il n'y a pas de méthodes asynchrones sur les DataReaders (Sql) car cela devrait être votre opération classique liée au réseau. En lisant les documents, il est suggéré que BeginExecuteReader/EndExecuteReader "récupère un ou plusieurs ensembles de résultats du serveur". - Êtes-vous sûr que la plupart du temps est passé dans Read? – Carsten

+0

@balexandre: Soit. Celui qui convient le mieux. –

Répondre