Dânêl
15-01-2012, 16:11
Ciao,
mi ritrovo in difficoltà a causa della mia scarsa esperienza con il multithreading e il c# con il quale lavoro solo da qualche settimana.
Nel progetto al quale sto lavorando, tramite un backGroundWorker, un thread secondario genera una lista di elementi sul quale opera, modificandone le proprietà in un ciclo. Al termine di ciascuna iterazione dovrei tramite un ReportProgress richiamare una funzione di print nel primo thread, dedicato ad output e UI, che salva i dati su file e li rappresenta graficamente in una picturebox.
Purtroppo, però , durante la stampa dei dati inizia il ciclo successivo che modificando gli oggetti nella lista crea un gran casotto nell'output.
Vi è qualche possibilità di risolvere evitando di far attendere esplicitamente il thread secondario il termine della fase di output? Le concurrent collections non credo facciano al caso mio perchè gli elementi non vengono eliminati o aggiunti, ma solo modificati. Ho comunque provato ad usare le concurrentBag, ma i problemi di output non sono variati.
Grazie in anticipo
mi ritrovo in difficoltà a causa della mia scarsa esperienza con il multithreading e il c# con il quale lavoro solo da qualche settimana.
Nel progetto al quale sto lavorando, tramite un backGroundWorker, un thread secondario genera una lista di elementi sul quale opera, modificandone le proprietà in un ciclo. Al termine di ciascuna iterazione dovrei tramite un ReportProgress richiamare una funzione di print nel primo thread, dedicato ad output e UI, che salva i dati su file e li rappresenta graficamente in una picturebox.
Purtroppo, però , durante la stampa dei dati inizia il ciclo successivo che modificando gli oggetti nella lista crea un gran casotto nell'output.
Vi è qualche possibilità di risolvere evitando di far attendere esplicitamente il thread secondario il termine della fase di output? Le concurrent collections non credo facciano al caso mio perchè gli elementi non vengono eliminati o aggiunti, ma solo modificati. Ho comunque provato ad usare le concurrentBag, ma i problemi di output non sono variati.
Grazie in anticipo