Je l'ai vu apparaître plusieurs endroits dans le code, jamais avec une explication, juste un commentaire cryptique au-dessus (Déclaration et exécution inclus pour une idée de contexte, il est juste une procédure standard de l'exécution d'un SqlCommand.):SqlCommand.Cancel() provoque une amélioration des performances?
//SqlCommand cmd = new SqlCommand();
//cmd.ExecuteReader();
//Read off the results
//Cancel the command. This improves query time.
cmd.Cancel();
Fondamentalement, après avoir terminé une requête, il revient en arrière et annule, en réclamant une amélioration des performances. Je suppose que vous pourriez retrouver de la mémoire quand ça se passe et libérer le XmlReader, mais il est généralement sur le point de sortir de la portée de toute façon.
Je ne l'ai jamais pris la peine avec elle avant, mais il est finalement apparu dans un code que je suis passé en revue. Est-ce que l'annulation d'une SqlCommand après l'avoir exécutée dans le code l'accélère réellement, ou est-ce juste une superstition bizarre de programmeur?
Avez-vous profilé le code? Il serait intéressant de voir à quel point cela a un effet. – jloubert
Il y a un casse-pointe important où l'appel Annuler fait une grande différence - voir ma réponse ci-dessous –