Variabilele de tip static pe Azure nu sunt chiar statice. Din cauza ca nu stim intr-un anumit moment pe ce instanta putem sa ajunge printr-un call, nu trebuie sa presupunem ca intre doua call-uri consecutive o sa ajungem pe aceiasi masina.
Aceasta problema apare mai ales in cazul variabilelor care le initializam printr-o metoda publica intr-un anumit moment diferit de initializarea aplicatiei.
Din aceasta cauza cel mai bine este sa lucram cu propietati, nu cu field-uri si sa avem un cod asemanator cu cel pentru Singleton.
Aceasta problema apare mai ales in cazul variabilelor care le initializam printr-o metoda publica intr-un anumit moment diferit de initializarea aplicatiei.
Din aceasta cauza cel mai bine este sa lucram cu propietati, nu cu field-uri si sa avem un cod asemanator cu cel pentru Singleton.
private static ObjA _item;
private static object _itemLock;
public static ObjA Item
{
get;
{
if(_item == null)
{
InitItem ();
}
return _item;
}
}
private static InitItem()
{
lock(_itemLock)
{
if(_item == null)
{
_item = Init;
}
}
}
Comments
Post a Comment