Quando dobbiamo chiudere un DataReader, se utilizziamo il metodo Close, a volte possiamo avere delle prestazioni leggermente basse perchè il controllo attende prima che sia stato eseguito il comando e poi chiude il reader. Se invece utilizziamo il metodo Cancel del relativo Command associato, l'operazione corrente viene interrotta e le risorse vengono liberate piu' velocemente.
E' opportuno citare la fonte di quanto ho detto, ovvero
un post di Dino Esposito.