Un worker thread dovrebbe svolgere del lavoro (anche pesante), ma non gestire interfaccia grafica e quindi non avere necessità di gestire i "messaggi" di Windows (da cui non dovrebbe utilizzare la DoEvents).