No non ho usato DoEvents()...
Ho fatto dei semplici loop tipo questo:

-------------------------------------------
Do
sLine = objReader.ReadLine()
If Not sLine Is Nothing Then
cnt = cnt + 1
End If
Loop Until sLine Is Nothing
---------------------------------------------

Qualche idea?