Il Background Worker ed un Thread sono quasi uguali
La differenza sta che il BackgroundWorker,
Lavoerarà sul thread princiapale, quindi ti eviterà il problema del CrossThreadException.
In più ti fornirà una serie di eventi molto importanti
RunWorkerAsync (Inizia il lavoro in background agganciandosi con un oggetto )
DoWork ( Inizia il lavoro in background )
ProgressChanged (Hai la percentuale del lavoro svolto)
RunWorkerCompleted (Evento scatenato quando l'operazione viene completata )
Nel caso di invio di un file, usare un backgroundWorker è un ottima soluzione.
Un thread invece, lavora separatamente dall'applicazione principale.
e come avviare una seconda applicazione non inerente alla prima.
Però qui hai il problema del CrossThreadException.
Il quale ti creerà molti problemi se cerci di accedere a controlli contenuti nel forum.
Si potrebbe evitare questo problema utilizzando una classe volatile.
Ma non sò se ne valga la pena farlo.
|