Conversione classi Java in C#

martedì 16 novembre 2004 - 12.06

wally74 Profilo | Newbie

Leggendo varia documentazione su C#, mi sono imbattuto sulla parola chiave lock che corrisponde più o meno (meno) a synchronized di Java;
Dico così perchè in Java è permesso sincronizzare i metodi e non solo porzioni di codice implementato nei metodi.
Esiste la possibilità di fare qualcosa di simile in C#?

wally74 Profilo | Newbie

Penso e ripenso ed esco pazzo? Non direi, soluzione trovata (se può essere utile ad altri new come me):

firma metodo()
{
lock
{
codice del metodo
}
}

Se esiste qualcosa di più efficente, si accettano suggerimenti.

ysdemarc Profilo | Expert

Ciao, penso che questo sia più efficiente:

lock (this)
{
// qui val il codice in sincronizzazione
Console.Out.Write("C# sincronizzazione");
}

se a qualcuno servisse invece in vb.net l'equivalente è:

SyncLock Me
' qui va il codice in sincronizzazione
Console.Out.Write ("sincronizzazione vb.net")
End SyncLock


Spero di esserti stato di aiuto...
Ciao

ysdemarc Profilo | Expert

Scusa ma dimenticavo, le paroli chiavi this (per c#) e Me (per vb) valgono solamente per un blocco della classe. Se ci sono più blocchi di sincronizzazione vanno sostituiti con variabili. Solo che non sono certo se le variabili devono essere a livello di classe o bastano quelle a livello di routine...

wally74 Profilo | Newbie

Grazie per la dritta; in effetti avevo omesso nel codice lock(this); il problema l'ho risolto alla grande e la conversione funziona.
Comunque grazie.
Ciao
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5