[c#] uso dei backgroundworker

giovedì 13 settembre 2007 - 12.25

warezz Profilo | Newbie

Buon giorno a tutti!

Ho un piccolo problemino (concettuale) con i BackGroundWorker.

Nel form di avvio del mio programma, ho trascinato il componente BackGroundWorker e nell'evento DoWork ho scritto questo codice:

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; this.Work();//qua richiamo la mia funzione che non restituisce niente }

Poi all'avvio del form faccio partire con il comando
this.backgroundWorker1.RunWorkerAsync();


Il programma va in eccezione quando nella funzione chiamata dal BackGroundWorker tento ad esempio di riempire un textbox che è nel form.

Con quale metodo si rivolve questo problema?

Grazie a tutti!

Brainkiller Profilo | Guru

>Buon giorno a tutti!
>Ho un piccolo problemino (concettuale) con i BackGroundWorker.

Esatto.
Non si possono fare cross-thread operations ossia, non puoi andare ad utilizzare controlli creati da un altro thread. L'applicazione ha un suo main thread che crea la finestra e i controlli se tu lanci un altro thread e accedi ai controlli va in errore.
Prova a guardare qui le varie tecniche:
http://msdn2.microsoft.com/en-us/library/ms171728.aspx
http://msdn2.microsoft.com/en-us/library/3s8xdz5c.aspx

Consulta anche questo Thread:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=8531

Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

warezz Profilo | Newbie

Grazie 1000 mi è stato di aiuto sia il post vecchio (che era proprio il problema che avevo io) sia gli articoli che mi hai postato.
Grazie ancora.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5