private void callBackConfMemberEventCBProcess(ref STConfParam _avParam)
 {
     LogManager.SystemLog.Info("callBackConfMemberEventCBProcess Monitor.Enter");
     ParameterizedThreadStart para = new ParameterizedThreadStart(StartUpdateCallWin);
     Thread thread = new Thread(para);
     thread.Priority = ThreadPriority.Highest;   //之前是Highest  2015/8/11
     thread.Start(_avParam);
 }
        void StartUpdateCallWin(object avParam)
        {
            lock (WinCall.lockObject)
            {
                //this.flag1 = false;
                try
                {
                    if (contactList != null)  //modify by 00327190   2015/8/10
                    {
                        LogManager.SystemLog.Info("StartUpdateCallWin Monitor.Enter");
                        STConfParam _avParam = new STConfParam();
                        _avParam = (STConfParam)avParam;
                        LogManager.SystemLog.Info("Start ConfMemberEventCB");
                        string str = _avParam.callerAcc_;
                        if (str == "")
                        {
                            if (_avParam.memStatus == (int)MemStatusInCall.CONF_MEM_SPK)
                            {
                                foreach (UCContact uc1 in contactList)
                                {
                                    uc1.IsSpeaker = false;
                                }
                            }
                            LogManager.SystemLog.Info("End ConfMemberEventCB1");
                            return;
                        }
                        else
                        {

                            if (contactList.FindIndex((x) => { return StringHelper.GetSubString(x.UserName) == str; }) == -1)
                            {
                                UCContact uc = new UCContact();
                                if (_avParam.memType == (int)MemberType.UC_IPPHONE)
                                {
                                    uc.UserName = str;
                                }
                                else
                                {
                                    uc.UserName = str + StringHelper.GetLyncDomainString(SingletonObj.LoginInfo.LyncName);
                                }
                                uc.Mute = (MemStatusInCall)_avParam.memStatus;
                                uc.UCMemberType = (MemberType)_avParam.memType;
                                uc.Online = GetContactAvailability(_avParam.memType, str);
                                //if 是modify by jinyeqing   之前是没有的
                                if (_avParam.memStatus != (int)MemStatusInCall.CONF_MEM_DEL)
                                {
                                    contactList.Add(uc);
                                }
                                winCall.Render(contactList);
                                //winCall.AddContactWinSize(contactList);
                                LogManager.SystemLog.Info("End ConfMemberEventCB2");
                                return;
                            }
                            else if (!winCall.IsConf())//修改呼叫三人会议,一人未接,被叫者不是会议状态的bug
                            {
                                winCall.Render(contactList);
                            }
                        }
                        UCContact ucFrist = contactList.First((x) => { return StringHelper.GetSubString(x.UserName) == str; });
                        if (ucFrist != null)
                        {
                            if ((_avParam.memStatus == (int)MemStatusInCall.CONF_MEM_DEL || _avParam.memStatus == (int)MemStatusInCall.CONF_MEM_QUIT)
                                && contactList.FindIndex((x) => { return x.IsLeader == true && StringHelper.GetSubString(x.UserName) == str; }) != -1)
                            {
                                //临时注释掉 会议主席离会时,关闭会议的处理,只更新状态
                                //winCall.CloseCallInThread();
                                ucFrist.Mute = (MemStatusInCall)_avParam.memStatus;
                                return;
                            }
                            switch (_avParam.memStatus)
                            {
                                case (int)MemStatusInCall.CONF_MEM_SPK:
                                    foreach (UCContact uc1 in contactList)
                                    {
                                        uc1.IsSpeaker = false;
                                    }
                                    ucFrist.IsSpeaker = true;
                                    break;
                                //case (int)MemStatusInCall.CONF_MEM_QUIT:
                                case (int)MemStatusInCall.CONF_MEM_DEL:
                                    contactList.Remove(ucFrist);
                                    winCall.Render(contactList);
                                    //  winCall.AddContactWinSize(contactList);
                                    break;
                                default:
                                    ucFrist.Mute = (MemStatusInCall)_avParam.memStatus;
                                    break;
                            }
                        }
                    }
                }
                finally
                {
                    LogManager.SystemLog.Info("End ConfMemberEventCB3");
                    LogManager.SystemLog.Info("StartUpdateCallWin Monitor.Exit");
                }
                //this.flag1 = true;
            }
        }