コード例 #1
0
ファイル: FrmMain.cs プロジェクト: softhills3d/VIZCore3D.NET
        private void btnTurnOverRun_Click(object sender, EventArgs e)
        {
            int angle = Convert.ToInt32(txtTurnOverAngle.Text);

            ThreadParameter threadParam = new ThreadParameter();
            threadParam.Angle = angle;
            threadParam.AnimationOnly = AnimationOnly;

            CollisionObjects = new Dictionary<int, CollisionItem>();

            AnimationOnly = ckAnimationOnly.Checked;
            StopTurnOver = ckStopTurnOver.Checked;
            DisplayAngle = ckDisplayAngle.Checked;

            backgroundWorkerTurnOver.WorkerReportsProgress = true;
            backgroundWorkerTurnOver.WorkerSupportsCancellation = true;

            backgroundWorkerTurnOver.RunWorkerAsync(threadParam);
        }
コード例 #2
0
ファイル: FrmMain.cs プロジェクト: softhills3d/VIZCore3D.NET
        private void backgroundWorkerTurnOver_DoWork(object sender, DoWorkEventArgs e)
        {
            ThreadParameter threadParam = (ThreadParameter)e.Argument;
            int count = threadParam.Angle;
            int waitTime = threadParam.AnimationOnly == true ? 100 : 0;

            for (int i = 0; i < count; i++)
            {
                if (backgroundWorkerTurnOver.CancellationPending == true)
                { 
                    e.Cancel = true;
                    return;
                }

                backgroundWorkerTurnOver.ReportProgress(i);

                System.Threading.Thread.Sleep(waitTime);
            }

            e.Result = count;
        }