Davvero tutti molto gentili e molto utili i vostri consigli.
Vi ringrazio.

Non essendo un programmatore esperto non ho potuto usare la tecnica 'multithreading' ma la dritta sul DoEvents e quella sul pulsante Cancel mi hanno accesso una lampadina e ho fatto semplicemente così:

While myReader.Read()
Application.DoEvents()
articoloRilevato = myReader.GetInt32(0)
'.....
End While

Non noto neppure rallentamenti significativi. Dal momento che è un form di dialogo sono presenti il pulsante OK e Cancel, l'aggiunta dell'istruzione 'Application.DoEvents' mi da finalmente la possibilità di attendere la pressione del pulsante Cancel (o ESC), e il gioco è fatto. Senza quella istruzione il programma si isolava fino al termine del ciclo While.

Mi scuso con Marco Breveglieri e lo ringrazio; il linguaggio è Visual Basic sto usando Visual Studio 2008, pensavo che fosse un forum solo di Visual Basic. Prossimamente specificherò.

Cari saluti a tutti.