Sto utilizzando 5 oggetti BackgroundWorker in esecuzione contemporaneamente per un determinato scopo e tutti devono modificare la stessa etichetta. Come lo faccio?BackgroundWorker accesso multithread al modulo
Come si modifica il modulo da più di un thread, quindi? E come lo faccio nel caso in cui voglio cambiare una stringa pubblica?
ReportProgress consente inoltre di apportare modifiche arbitrarie all'interfaccia utente. –
come faccio a invocarlo se sta accadendo ora a una stringa pubblica del mio modulo? – Marcelo
@Henk: ReportProgress consentirà solo a BackroundWorker di inviare un singolo oggetto "UserState", che deve quindi essere interpretato dal gestore di eventi ProgressChanged per aggiornare effettivamente l'interfaccia utente. Quello che stavo cercando di dire è che con l'approccio Invoke() puoi inserire il codice per l'aggiornamento proprio all'interno del metodo in cui crei in primo luogo il BackgroundWorker, portando a un codice più efficiente e più leggibile. Questa è una decisione progettuale, ovviamente, con tutti i normali compromessi. – RobC