示例#1
0
        private void RunNow()
        {
            try
            {
                long maxCount = System.Convert.ToInt64(_nupCycles.Value);
                UpdateProgressDelegate updateDeleg = new UpdateProgressDelegate(UpdateProgress);
                ResetFormDelegate      resetDeleg  = new ResetFormDelegate(ResetForm);

                bool runForEver = _chkRunForever.Checked;
                int  sleepCount = 0;
                int  sleepAfter = System.Convert.ToInt32(_nupSleepCycles.Value);
                int  sleepTime  = System.Convert.ToInt32(_nupSleep.Value);

                long uiUpdate      = System.Convert.ToInt64(Math.Round((System.Convert.ToDouble(maxCount) / 100) * 2, 0));
                long uiUpdateCount = 0;

                do
                {
                    for (long i = 0; i < maxCount; i++)
                    {
                        uiUpdateCount++;

                        runForEver = _chkRunForever.Checked;
                        sleepAfter = System.Convert.ToInt32(_nupSleepCycles.Value);
                        sleepTime  = System.Convert.ToInt32(_nupSleep.Value);

                        if (_stop)
                        {
                            runForEver = false;
                            break;
                        }

                        if (uiUpdateCount >= uiUpdate)
                        {
                            Invoke(updateDeleg, new object[] { i, maxCount });
                            uiUpdateCount = 0;
                        }
                        //UpdateProgress(i, maxCount);

                        if (sleepTime > 0)
                        {
                            sleepCount++;
                            if (sleepCount >= sleepAfter)
                            {
                                Thread.Sleep(sleepTime);
                                sleepCount = 0;
                            }
                        }
                    }
                }while (runForEver);
                Invoke(updateDeleg, new object[] { maxCount, maxCount });
                Invoke(resetDeleg, null);
                //ResetForm();
            }
            catch { }
        }
示例#2
0
        private void RunNow()
        {
            try
            {
                long maxCount = System.Convert.ToInt64(_nupCycles.Value);
                UpdateProgressDelegate updateDeleg = new UpdateProgressDelegate(UpdateProgress);
                ResetFormDelegate resetDeleg = new ResetFormDelegate(ResetForm);

                bool runForEver = _chkRunForever.Checked;
                int sleepCount = 0;
                int sleepAfter = System.Convert.ToInt32(_nupSleepCycles.Value);
                int sleepTime = System.Convert.ToInt32(_nupSleep.Value);

                long uiUpdate = System.Convert.ToInt64( Math.Round((System.Convert.ToDouble(maxCount) / 100) * 2,0));
                long uiUpdateCount = 0;

                do
                {
                    for (long i = 0; i < maxCount; i++)
                    {
                        uiUpdateCount++;

                        runForEver = _chkRunForever.Checked;
                        sleepAfter = System.Convert.ToInt32(_nupSleepCycles.Value);
                        sleepTime = System.Convert.ToInt32(_nupSleep.Value);

                        if (_stop)
                        {
                            runForEver = false;
                            break;
                        }

                        if (uiUpdateCount >= uiUpdate)
                        {
                            Invoke(updateDeleg, new object[] { i, maxCount });
                            uiUpdateCount = 0;
                        }
                        //UpdateProgress(i, maxCount);

                        if (sleepTime > 0)
                        {
                            sleepCount++;
                            if (sleepCount >= sleepAfter)
                            {
                                Thread.Sleep(sleepTime);
                                sleepCount = 0;
                            }
                        }
                    }
                }
                while (runForEver);
                Invoke(updateDeleg, new object[] { maxCount, maxCount });
                Invoke(resetDeleg, null);
                    //ResetForm();

            }
            catch { }
        }