protected void AllDisconnectHandler()
    {
        {
            for (int i = 0; i < m_waitForNotifyInfos.Count; ++i)
            {
                if (m_waitForNotifyInfos[i] == null)
                {
                    continue;
                }

                m_waitForNotifyInfos[i].Dispose();
            }

            m_waitForNotifyInfos.Clear();
        }

        {
            for (int i = 0; i < m_handlers.Count; ++i)
            {
                INotifyHandler handler = m_handlers[i];
                if (handler == null)
                {
                    continue;
                }

                handler.OnDisconnectHandler();
            }

            m_handlers.Clear();
        }
    }
    public void DisconnectHandler(INotifyHandler handler)
    {
        if (handler == null)
        {
            LogWarning("NotificationManager.DisconnectHandler( null )");
            return;
        }

        handler.OnDisconnectHandler();

        if (m_handlers != null)
        {
            m_handlers.Remove(handler);

            Log(StringUtil.Format("NotificationManager.DisconnectHandler({0}) -> Handler Count: {1}", handler.HandlerName, m_handlers.Count.ToString()));
        }
    }