C#中线程安全的单例模式

using UnityEngine;

/by Alexander/

public enum UserState
{
Online,
Chatting,
Pushing,
Offline
}

public class StateController : MonoBehaviour
{
private object m_mutex = new object();
private bool m_initialized = false;
private static StateController stateController = null;

// Singleton in thread-safe-mode
public StateController Instance
{
    get
    {
        if (!this.m_initialized)
        {
            lock (this.m_mutex)
            {

                if (stateController == null)
                {
                    stateController = new StateController();
                    m_initialized = true;
                }
            }
        }
        return stateController;
    }
}

private UserState m_state;
public UserState State
{
    get
    {
        return m_state;
    }
    set
    {
        lock (m_mutex)
        {
            m_state = value;
        }
    }
}

}


版权声明:本文为wy122222222原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。