Air_Hockey_Simulator.MicroTimer.Start C# (CSharp) Method

Start() public method

public Start ( ) : void
return void
        public void Start()
        {
            if (Enabled || Interval <= 0) {
                return;
            }

            _stopTimer = false;

            System.Threading.ThreadStart threadStart = delegate () {
                NotificationTimer(ref _timerIntervalInMicroSec,
                                  ref _ignoreEventIfLateBy,
                                  ref _stopTimer);
            };

            _threadTimer = new System.Threading.Thread(threadStart);
            _threadTimer.Priority = System.Threading.ThreadPriority.Highest;
            _threadTimer.Start();
        }

Usage Example

コード例 #1
0
        public void Init()
        {
            Table = new Table();
            Robot = new Arm();
            Puck  = new Puck();

            #region Physical Defaults
            Table.Height = 1.987; //198.7 cm, or 8 feet
            Table.Width  = 0.965;
            Line Left_Side  = new Line(new PointD(0, 0), new Angle(90, AngleType.Degrees));
            Line Right_Side = new Line(new PointD(Table.Width, 0), new Angle(90, AngleType.Degrees));
            Line Light_Side = new Line(new PointD(0, Table.Height), new Angle(0.001, AngleType.Degrees));
            Line Dark_Side  = new Line(new PointD(0, 0), new Angle(0.001, AngleType.Degrees));
            Table.Walls.Add(Left_Side); Table.Walls.Add(Right_Side); Table.Walls.Add(Light_Side); Table.Walls.Add(Dark_Side);
            Table.Friction   = 0.000250 / 1000;
            Table.Goal_Width = .26; //26 cm

            Arc arc_test = new Arc(new PointD(Table.Width, Table.Height / 2), 0.4175);
            Table.Arcs.Add(arc_test);
            Arc arc_test2 = new Arc(new PointD(0, Table.Height / 2), Table.Width);
            Table.Arcs.Add(arc_test2);

            Robot.Arm_Length     = .3; //30 cm
            Robot.Arm_Angle      = new Angle(90, AngleType.Degrees);
            Robot.Forearm_Length = .3;
            Robot.Forearm_Angle  = new Angle(90, AngleType.Degrees);

            Puck.Weight             = 18;      //18 grams
            Puck.Radius             = 0.03175; //The diameter of a standard hockey puck is 6.35 cm
            Puck.Location           = new PointD(Table.Width / 2, Table.Height / 2);
            Puck.Velocity.Direction = new Angle(((double)(new Random()).Next(0, 36000) / 100.0), AngleType.Degrees);
            //Puck.Velocity.Speed = 10.30 / 1000;
            #endregion

            //Timer
            Updated               = OnUpdated;
            tm.Interval           = (1000 * 1000) / 60;
            tm.MicroTimerElapsed += Tm_MicroTimerElapsed;
            tm.Start();
        }