Ciao Marco.
Se scommenti i messagebox dopo i Catch o ci aggiungi :
codice:
Messagebox.Show(ex.message)
ti accorgi subito dell'errore causato dalla dichiarazione nella prima riga.....con il quale otterrai un eccezione crossthread

Facci sapere....
Ciao