Multithreating in VB.NET

domenica 18 giugno 2006 - 12.34

nioMatrix Profilo | Junior Member

Salve a tutti

Ho creato un piccolo applicativo per vedere come funziona il Multithreating, ma poi mi sono accorto che il programma genera un' eccezione quando vado ad accedere ai controlli del form. L'eccezione che viene generata è la seguente:

"Cross-thread operation not valid: Control 'ListBox1' accessed from a thread other than the thread it was created on."

e credo che venga generata perchè non posso accedere ai controlli del from da un altro thread.

Potete dirmi come fare per accedere ai suddetti controlli dal nuovo thread?

Grazie

19018 Profilo | Expert

Leggi qui-> http://msdn2.microsoft.com/en-us/library/ms171728.aspx e scegli la soluzione migliore oppure basta inserire Control.CheckForIllegalCrossThreadCalls = false; per disabilitare il controllo sulle chiamate thread-safe.

ciao


Stefano Passatordi

http://blogs.dotnethell.it/stem/

nioMatrix Profilo | Junior Member

Mi conviene usare ciò che dice il link che mi hai postato o impostare la proprietà CheckForIllegalCrossThreadCalls = false?

PS: Ma impostare la proprietà CheckForIllegalCrossThreadCalls a false provoca qualche inconveniente?

19018 Profilo | Expert

Dipende da come è strutturata l'applicazione, se ad esempio tu sai già che un controllo sarà utilizzato da più processi asincroni che vi accederanno in maniera non deterministica allora ti conviene utilizzare uno dei metodi spiegati nell'articolo, se invece sei sicuro che un controllo viene usato sempre dallo stesso processo oppure non c'è rischio che più processi cerchino di utilizzarlo nello stesso istante allora puoi disabilitare il controllo sulle chiamate sicure.In ogni caso ti consiglio di usare uno dei meccanismi safe per maggiore sicurezza e per mantenere uno stile di programmazione pulito e sicuro

ciao

Stefano Passatordi

http://blogs.dotnethell.it/stem/

nioMatrix Profilo | Junior Member

Allora cercherò di capire cosa dice quell'articolo.

Grazie Mille

Ciao

PS: però è strano, perchè in un articolo che ho letto (http://www.simply4you.it/articoli/net/art0003a.asp)vengono utilizzati i controlli del form senza utilizzare nessun meccanismo particolare

19018 Profilo | Expert

Credo che sia un articolo basato su framework 1.1 ecco perchè.

Ricordate di chiudere il thread nel forum se non avete altre domande.

ciao

Stefano Passatordi

http://blogs.dotnethell.it/stem/

nioMatrix Profilo | Junior Member

Ok Grazie mille
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