/// <summary>
        /// 如果是强制结束此桌,此桌不会记录与结处
        /// </summary>
        /// <param name="_forceOver"></param>
        private void DoExecuteAllEnd(bool _forceOver)
        {
            lock (objLock)
            {
                ForeashAllDo((i) =>
                {   //更新数据
                    tb_UserEx.UpdateData(_DicPos2User[i]._tbUser);
                });

                List <CommonPosValSD> _watchlist = new List <CommonPosValSD>();
                //写入此桌的金钱交易记录
                if (!_forceOver)
                {
                    _pos2CardList = new Dictionary <int, List <int> >(_dicPokerList);//记录手牌
                    ForeashAllDo((i) =>
                    {
                        _pos2Money.Add(i, _DicPos2User[i]._CurrentGold);
                        _pos2Win.Add(i, _judge.CheckGameOverWin(_DicPos2User[i]._CurrentGold));
                        int _bfRate = BullFight._dicbullfightRate[_DicPos2User[i]._bulltype];
                        _pos2BullRate.Add(i, _bfRate);

                        //更新数据
                        tb_UserEx.UpdateData(_DicPos2User[i]._tbUser);
                    });
                    ForeashAllDo((i) =>
                    {
                        //低于一定分数就当观众了
                        if (_judge.MinLimitMoney((int)_DicPos2User[i]._tbUser.UserMoney))
                        {
                            _DicPos2User[i]._isWatch = true;
                        }
                        else
                        {
                            _DicPos2User[i]._isWatch = false; //金币模式中上局没开始成功的
                        }
                        _watchlist.Add(new CommonPosValSD()
                        {
                            pos = i, val = _DicPos2User[i]._isWatch ? 1 : 0
                        });
                        _pos2Watch.Add(i, _DicPos2User[i]._isWatch ? 1 : 0);
                    });
                }
                else
                {
                    _gameover = _forceOver;
                }

                _tablRecord.ActionList = "";     //写入此桌的录相 记录
                _tablRecord.EndTime    = DateTime.Now;
                _tablRecord.gameid     = _gameid;
                _tablRecord._isover    = (_judge._gameCoin2Room1 == 2 ? true : _gameover);
                LogWriteToDB(_tablRecord);

                bool _bankerCanGetBonusPot = _judge.CheckCanBankerGetBonusPot();   //必须在结算了后面


                tb_TableMoneyLogEx.SetRateDataByTableNum(_guid, _gameover, _numpertable);

                List <CommonPosValSD> _pos2Gold1 = _judge.GetCurrentPosGold();
                //向X家返回结果 通知 结束
                List <UserIDMSG> imList = new List <UserIDMSG>();
                ForeashAllDo((i) =>
                {
                    BullFight100User tempUser = _DicPos2User[i];

                    sc_end_bf100_n _end_n = new sc_end_bf100_n()
                    {
                        fn = "sc_end_bf100_n", result = 1, _msgid = _TurnWaitTime
                    };                                                                                                         // 显示结束面板就行

                    _end_n.gamemodel  = _judge._gameCoin2Room1;
                    _end_n._OverTable = _gameover ? 1 : 0;
                    _end_n.createpos  = _masterPos;
                    _end_n._pos2Watch = _watchlist;
                    _end_n._pos2Gold  = _pos2Gold1;

                    _end_n.closefun = _bankerCanGetBonusPot ? true : false;// 能收取奖池的时候   客户端不自动走准备方法,等下一个命令
                    if (_judge._gameCoin2Room1 == 2 && tempUser._isRobot)
                    {
                        return;                                                  //结束不发给机器人
                    }
                    imList.Add(new UserIDMSG(tempUser._userid, JsonUtils.Serialize(_end_n), tempUser._isRobot, tempUser._isDisconnet));
                });

                BF100SendDataServer.instance.SendDataDelay(imList);
                _tableSendData.Add(imList);
                ForeashAllDo((i) => { _DicPos2User[i].SetTimeOutAction(1, "sc_end_bf100_n", _bankerCanGetBonusPot  ? _TurnWaitTime : 6); }); //下把的自动开始功能        ReStart();

                Reset(_gameover);                                                                                                            //准备下局, 重置此桌信息
            }
        }