Normalerweise mache ich etwas in dieser Art:
Dim Attempts = 0
Try
Retry:
<Block>
Catch
If Attempts < 3 Then
Attempts += 1
Thread.Sleep(2000)
GoTo Retry
Else
Throw
End If
End Try
Das sieht für mich wirklich nicht gut aus, aber ich kenne keinen besseren Weg, es zu tun.