public void LoadCurExperimentTask(int expId)
    {
        if (!ExperimentTaskDic.ContainsKey(expId))
        {
            return;
        }
        // 读取一个任务表的所有信息
        List <TaskTableInfo> info = ExperimentTaskDic[expId];

        if (info == null || info.Count <= 0)
        {
            return;
        }

        PraticeStepInfo              = new PractiseTaskInfo();
        PraticeGroupPair             = new Dictionary <int, string>();
        PraticeStepInfo.ExperimentId = expId;
    }
    /// <summary>
    /// 进入练习
    /// </summary>
    /// <param name="expId"></param>
    public void EnterPratice(int expId)
    {
        // 判断没有退出的话先退出
        if (mIsInPractiseMode)
        {
            LeavePratice();
        }
        if (ExperimentTaskDic != null && ExperimentTaskDic.ContainsKey(expId))
        {
            mIsInPractiseMode = true;

            TaskEventManager.GetInstance().RegEvent((int)TaskEventType.ParamNone, OnTaskStep);
            TaskEventManager.GetInstance().RegEvent((int)TaskEventType.ParamOne, OnTaskStep);
            TaskEventManager.GetInstance().RegEvent((int)TaskEventType.ParamTwo, OnTaskStep);
            TaskEventManager.GetInstance().RegEvent((int)TaskEventType.ParamThree, OnTaskStep);
            TaskEventManager.GetInstance().RegEvent((int)TaskEventType.ParamFour, OnTaskStep);

            LoadCurExperimentTask(expId);
        }
    }