Esempio n. 1
0
    /// <summary>
    /// 显示等待界面请求
    /// </summary>
    /// <param name="_msg"></param>
    private void ShowWaiting(Message _msg)
    {
        if (!_msg.IsKey("id"))
        {
            return;
        }

        int            nId   = _msg["id"] != null ? (int)_msg["id"] : 0;
        WaitingMsgInfo mInfo = new WaitingMsgInfo(_msg);

        key_msgs.AddOrReplace(nId, mInfo);

        SetMax(_msg);

        m_qMsg.Enqueue(nId);

        if (!m_bShowWaiting)
        {
            UIManager.Instance.OpenUI(UIType.Waiting, false, _msg);
            m_curMsgKey = nId;

            LoadWaitingView();
        }
        m_bShowWaiting = true;
    }
Esempio n. 2
0
    /// <summary>
    /// 进度总数+1
    /// </summary>
    /// <param name="_msg"></param>
    private void PushWaiting(Message _msg)
    {
        if (_msg.IsKey("id"))
        {
            int nId = (int)_msg["id"];

            if (!key_msgs.ContainsKey(nId))
            {
                return;
            }
            WaitingMsgInfo mInfo = key_msgs[nId];
            m_nTotal     = mInfo.nTotal;
            mInfo.nTotal = ++m_nTotal;

            key_msgs[nId] = mInfo;
            m_nCurrent    = mInfo.nCurrent;

            if (nId == m_curMsgKey)
            {
                if (m_nCurrent >= m_nTotal)
                {
                    LoadWaitingView();
                }
                else
                {
                    Message msg = new Message(MsgType.WV_UpdateWaiting, this);
                    msg["t"] = m_nTotal;
                    msg["c"] = m_nCurrent;
                    msg.Send();
                }
            }
        }
    }
Esempio n. 3
0
    private void SetMax(Message _msg)
    {
        if (_msg.IsKey("id") && _msg.IsKey("t"))
        {
            int nId    = (int)_msg["id"];
            int nTotal = (int)_msg["t"];

            if (!key_msgs.ContainsKey(nId))
            {
                return;
            }
            WaitingMsgInfo mInfo = key_msgs[nId];
            mInfo.nTotal = nTotal;

            key_msgs[nId] = mInfo;
            m_nCurrent    = mInfo.nCurrent;
        }
    }
Esempio n. 4
0
 /// <summary>
 /// 等待消息队列
 /// </summary>
 private void LoadWaitingView()
 {
     if (m_qMsg.Count > 0)
     {
         int            nKey  = (int)m_qMsg.Dequeue();
         WaitingMsgInfo mInfo = key_msgs[nKey];
         if (mInfo.bFinished)
         {
             LoadWaitingView();
         }
         else
         {
             Message msg = mInfo.msg;
             m_curMsgKey = nKey;
             Message newMsg = new Message(MsgType.WV_NewWaiting, msg);
             newMsg.Send();
         }
     }
     else
     {
         UIManager.Instance.CloseUI(UIType.Waiting);
         m_bShowWaiting = false;
     }
 }