Exemple #1
0
        /// <summary>
        /// 为每一个选择的要进行滚动的图形构造一个线程
        /// </summary>
        /// <param name="Selected_Drawings"></param>
        /// <remarks></remarks>
        private void ConstructRollingThreads(Drawings_For_Rolling Selected_Drawings)
        {
            AbortAllThread(F_arrThread);

            // -------------------------------------  包含所有要进行滚动的线程的数组
            short SelectedDrawingsCount = Selected_Drawings.Count();

            //
            F_arrThread         = new Thread[SelectedDrawingsCount - 1 + 1];
            F_arrThreadDelegete = new ParameterizedThreadStart[SelectedDrawingsCount - 1 + 1];
            //'
            short btThread = (short)0;
            //
            //
            // ------------------------------------------ 标高剖面图
            ClsDrawing_ExcavationElevation ele = Selected_Drawings.SectionalView;

            if (ele != null)
            {
                //为线程数组中的元素线程赋值
                F_arrThreadDelegete[btThread] = new ParameterizedThreadStart(ele.Rolling);
                Thread thd = new Thread(F_arrThreadDelegete[btThread]);
                thd.Name = "滚动标高剖面图";
                F_arrThread[btThread] = thd;
                F_arrThread[btThread].IsBackground = true;
                btThread++;
            }

            // ------------------------------------------ 开挖平面图
            ClsDrawing_PlanView Plan = Selected_Drawings.PlanView;

            if (Plan != null)
            {
                //为线程数组中的元素线程赋值
                F_arrThreadDelegete[btThread] = new ParameterizedThreadStart(Plan.Rolling);
                Thread thd = new Thread(F_arrThreadDelegete[btThread]);
                thd.Name = "滚动开挖平面图";
                F_arrThread[btThread] = thd;
                F_arrThread[btThread].IsBackground = true;
                btThread++;
            }

            // ------------------------------------------ 监测曲线图
            foreach (clsDrawing_Mnt_RollingBase Moni in Selected_Drawings.RollingMnt)
            {
                //为线程数组中的元素线程赋值
                F_arrThreadDelegete[btThread] = new ParameterizedThreadStart(Moni.Rolling);
                Thread thd = new Thread(F_arrThreadDelegete[btThread]);
                thd.Name = "滚动监测曲线图";
                F_arrThread[btThread] = thd;
                F_arrThread[btThread].IsBackground = true;
                btThread++;
            }
        }
Exemple #2
0
 //选择复选框或者列表项——更新滚动线程与窗口界面
 /// <summary>
 /// !选择的图形发生改变时,更新滚动线程与窗口界面。
 /// </summary>
 /// <param name="Selected_Drawings">更新后的要进行滚动的图形</param>
 /// <remarks>此方法不能直接Handle复选框的CheckedChanged或者列表框的SelectedIndexChanged事件,
 /// 因为此方法必须是在更新了Me.F_SelectedDrawings属性之后,才能去更新窗口界面。</remarks>
 private void SelectedRollingDrawingsChanged(Drawings_For_Rolling Selected_Drawings)
 {
     //
     ConstructRollingThreads(Selected_Drawings);
     this.FocusOn_DateSpan = Refesh_FocusOn_DateSpan(Selected_Drawings);
     //
     if (Selected_Drawings.Count() > 0)
     {
         F_blnHasDrawingToRoll = true;
     }
     else
     {
         F_blnHasDrawingToRoll = false;
     }
     RefreshUI_SelectedDrawings(F_blnHasDrawingToRoll, this.F_FocusOn_DateSpan);
     //
 }