Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Sincronizzazione tra thread
mercoledì 23 maggio 2007 - 15.48
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Abdujaparov
Profilo
| Newbie
21
messaggi | Data Invio:
mer 23 mag 2007 - 15:48
Salve a tutti,
ho un problema con i thread . Vorrei accedere ad un oggetto e manipolare una variabile condivisi da più thread. Come posso sincronizzare l'accesso all' oggetto ed alla variabile in modo che i thread non cerchino di accedergli contemporaneamente per modificare i dati?? Ho letto qualcosa in merito ai Lock ma non riesco a capirici molto anche perchè subito dopo si è parlato della classe monitor ed a questo punto mi perso del tutto. Pensavo, se non ho capito male, che per modificare un oggetto/dato dovrei eseguire questa procedura:
lock(this)
{
a+=24;
oggetto.set(qualcosa che gli passo);
}
In questo modo è corretto?? Cosa rischio di trascurare in questo caso??
Grazie 1000
ciao
Fantazma
Profilo
| Junior Member
95
messaggi | Data Invio:
ven 25 mag 2007 - 10:34
>Come posso
>sincronizzare l'accesso all' oggetto ed alla variabile in modo
>che i thread non cerchino di accedergli contemporaneamente per
>modificare i dati?? Ho letto qualcosa in merito ai Lock ma non
>riesco a capirici molto anche perchè subito dopo si è parlato
>della classe monitor ed a questo punto mi perso del tutto.
Ciao, l'accesso ad oggetti condivisi fra i thread è cosa da trattare con attenzione. Quello che hai letto è giusto, un modo per far in modo che i thread accedano uno la volta ad un oggetto è il synclock. La sua differenza con l'oggetto monitor è una maggior flessibilità di quest'ultimo a fronte però di una struttura del codice leggermente più complessa.
>Pensavo,
>se non ho capito male, che per modificare un oggetto/dato dovrei
>eseguire questa procedura:
>
>lock(this)
>{
>a+=24;
>oggetto.set(qualcosa che gli passo);
>}
>
La procedura è corretta... se vuoi trovi informazioni qui:
http://msdn2.microsoft.com/it-it/library/c5kehkcz
(VS.80).aspx
Ciao!!!
Torna su
Stanze Forum
Elenco Threads
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 !