Dopo aver discusso sulle modalità di sviluppo del pattern Singleton, vediamo oggi come modificarne l'implementazione standard, in modo tale che diventi thread-safe, cioè che funzioni anche in un ambiente multithread.
Per raggiungere questo obbiettivo dobbiamo semplicemente istanziare un nuovo oggetto di tipo object, ed effettuarne un lock; questo per far si che la classe "Singleton" sia istanziata una sola volta, anche se viene richiamata da thread diversi.

public class Singleton

{
private static Singleton instance = null;
public static readonly object obj = new object();

private Singleton() {}

public static Singleton getInstance()
{
if(instance == null)
{
lock(obj)
{
if(instance == null)
instance = new Singleton();
}
}
return instance;
}
}
Commenti(0) - Posted @ 6/4/2006 6:57:26 PM - Categoria: .NET General - Permalink - Share on twitter | facebook


COMMENTI
Non sono stati aggiungi commenti ...

INSERISCI UN COMMENTO

Nome *
Indirizzo e-mail
(non verrà pubblicato)
Commento *