29 messaggi dal 17 settembre 2001
Caspita, tutto il giorno che ci provo ma non ricavo nulla....
176 messaggi dal 04 giugno 2007
Contributi | Blog
Se ho capito bene questo codice e' eseguito da un thread diverso dal thread di UI. Questo potrebbe creare problemi sottili di interazione tra i thread su oggetti non lock-ati e condivisi.

Questo vuol dire che quando accedi alla collezione delle checkbox, il suo stato puo' essere modificato da una lettura all'altra, in particolare puo' succedere che una risposta ad un WM_PAINT ne crei una iterazione.
Se questo succede, il foreach potrebbe perdere il filo.

Non usare la collezione delle checkbox - prova a copiare gli stati in un oggetto che sia di proprieta' esclusiva del worker thread.

In alternativa, metti un lock sulla collezione delle checkbox prima del foreach - se ho ragione il programma si dovrebbe congelare in deadlock o comportarsi come se fosse single-threaded.

Saluti

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.