Giocando con i threads (direttamente o indirettamente attraverso BeginXXX e EndXXX) ci si scontra con la necessita' di dover accedere a controlli Windows Forms da thread diversi da quello in cui il controllo e' stato creato.
Ho gia' descritto la tecnica per accedere in maniera thread-safe ai controlli windows forms ma se non ne avete avuto abbastanza questo
blog (!) entra nel dettaglio.