-----------------------------------------------------------

New Message on BDOTNET

-----------------------------------------------------------
From: G�rard EDMOND
Message 1 in Discussion


Hope someone could clarify me the synchronisation question in Singleton pattern code 
of C# 
I had created a class as  
public sealed class SecuriteManager
{
    private static volatile SecurityManager instance;
    private static object syncRoot = new Object(); 
    private SecurityManager() { } 
    public static SecurityManager GetInstance
    {
        get{
            if(null == instance){
                    lock(syncRoot){
                        if (instance == null) 
                            instance = new SecurityManager();
                    }
            }
            return instance;
        }
    }
    
    public bool IsAllowed(string UserName)
    {
        //A very long process here.  
        //For example access to a webservice which might take 3 seconds.
        //HttpContext.Current.Session[UserName] = returnValueFromWebservice;
    }        
} 

My question,
when 2 users access IsAllowed at the same time, is the process thread safe ?  
Or should I use lock for each call in my function as  
public bool IsAllowed(string UserName)
{
    lock(syncRoot)
    {
        //A very long process here.  
        //For example access to a webservice which might take 3 seconds.
        //HttpContext.Current.Session[UserName] = returnValueFromWebservice;
    }
} 

Thanks in advance. 
  

-----------------------------------------------------------

To stop getting this e-mail, or change how often it arrives, go to your E-mail 
Settings.
http://groups.msn.com/BDotNet/_emailsettings.msnw

Need help? If you've forgotten your password, please go to Passport Member Services.
http://groups.msn.com/_passportredir.msnw?ppmprop=help

For other questions or feedback, go to our Contact Us page.
http://groups.msn.com/contact

If you do not want to receive future e-mail from this MSN group, or if you received 
this message by mistake, please click the "Remove" link below. On the pre-addressed 
e-mail message that opens, simply click "Send". Your e-mail address will be deleted 
from this group's mailing list.
mailto:[EMAIL PROTECTED]

Reply via email to