예제 #1
0
        public MainWindow()
        {
            InitializeComponent();

            mainThreadId_ = Thread.CurrentThread.ManagedThreadId;

            ecgGenerator_ = new DataGen.Electrocardiogram();

#if USE_RENDERING_CALLBACK
            CompositionTarget.Rendering += CompositionTarget_Rendering;
#elif USE_DISPATCHERTIMER
            timer_          = new DispatcherTimer();
            timer_.Tick    += Timer__Tick;
            timer_.Interval = new TimeSpan(0, 0, 0, 0, 100);
            timer_.Start();
#elif USE_MMTIMER
            timer_ = new MMTimer(Timer__Tick)
            {
                Interval = 50,
            };
            timer_.Start();
#elif USE_TIMERQUEUETIMER
            cancellationTokenSource_ = new CancellationTokenSource();
            timer_ = new TimerQueueTimer();
            waitOrTimerDelegate_ = new WaitOrTimerDelegate(Timer__Tick); // Avoid GC
            timer_.Create(1000, 50, waitOrTimerDelegate_);
#endif

            stopwatch_ = Stopwatch.StartNew();
        }
예제 #2
0
        public Telemetry(IPluginTelemetryProvider provider, Process simulatorProcess)
        {
            Provider = provider;

            // Initialize memory objects
            var mem = new MemoryReader();

            mem.Open(simulatorProcess);

            Memory = new MemoryProvider(mem);

            // Initialize telemetry provider; this class gives us the address layout to read.
            Memory.Scanner.Enable();
            Provider.Initialize(Memory);
            Memory.Scanner.Disable();

            // Start outside-world telemetry objects
            Session     = new TelemetrySession();
            Simulator   = new TelemetryGame();
            Acquisition = new TelemetryAcquisition();
            Support     = new TelemetrySupport();

            // Start 40Hz clock signal (25ms)
            Clock       = new MMTimer(25);
            Clock.Tick += (o, s) => GlobalEvents.Fire(new TelemetryRefresh(this), true);
            Clock.Start();

            // Hook both events together:
            GlobalEvents.Hook <TelemetryRefresh>(Update, true);
        }
예제 #3
0
        static void Main(string[] args)
        {
            var       stopwatch = Stopwatch.StartNew();
            int       count     = 0;
            const int MaxCount  = 20;

            var timer = new Timer(
                _ =>
            {
                Console.WriteLine("Elapsed ms: {0}", stopwatch.ElapsedMilliseconds);
                Interlocked.Increment(ref count);
            },
                null,
                1000,
                100);

            while (true)
            {
                if (Thread.VolatileRead(ref count) >= MaxCount)
                {
                    timer.Dispose();
                    break;
                }
            }

            Console.WriteLine("---------- MMTimer ----------");
            count = 0;
            stopwatch.Restart();

            var mmTimer = new MMTimer(
                _ =>
            {
                Console.WriteLine("Elapsed ms: {0}", stopwatch.ElapsedMilliseconds);
                Interlocked.Increment(ref count);
            }
                )
            {
                Interval = 100
            };

            mmTimer.Start();

            while (true)
            {
                if (Thread.VolatileRead(ref count) >= MaxCount)
                {
                    mmTimer.Stop();
                    break;
                }
            }

            Util.Pause();
        }
        public void Connect(object target)
        {
            generateData       = new MMTimer(10);
            generateData.Tick += GenerateDataElapse;
            generateData.Start();

            IsConnected = true;
            if (Connected != null)
            {
                Connected(this, new EventArgs());
            }
        }
예제 #5
0
파일: Pusher.cs 프로젝트: ryujibilly/LGD
 /// <summary>
 /// 使用用户名+密码构造方法
 /// </summary>
 /// <param name="username"></param>
 /// <param name="password"></param>
 public Pusher(String username, String password)
 {
     this.Username                    = username;
     this.Userpassword                = password;
     nc.UserName                      = username;
     nc.Password                      = password;
     _realdbws.Credentials            = nc;
     PushingThread                    = new Thread(new ThreadStart(StartPushing));
     RowidTimer                       = new MMTimer(RowidMonitoring);
     GetHttpStatusTimer               = new MMTimer(GetHttpStatus);
     this.GetHttpStatusTimer.Interval = 30000;
     InitHashTable(username, password);
     initIndexTable();
 }
예제 #6
0
파일: Pusher.cs 프로젝트: ryujibilly/LGD
 /// <summary>
 /// 构造方法
 /// </summary>
 public Pusher()
 {
     this.Username                    = "******";
     this.Userpassword                = "******";
     nc.UserName                      = "******";
     nc.Password                      = "******";
     _realdbws.Credentials            = nc;
     PushingThread                    = new Thread(new ThreadStart(StartPushing));
     RowidTimer                       = new MMTimer(RowidMonitoring);
     GetHttpStatusTimer               = new MMTimer(GetHttpStatus);
     this.GetHttpStatusTimer.Interval = 30000;
     InitHashTable();
     initIndexTable();
 }
예제 #7
0
 private void RealDBPusher_Load(object sender, EventArgs e)
 {
     timer_Push = new MMTimer(this.timer_Push_Tick);
     m_checkBoxList.Add(logging_checkBox);  //测井
     m_checkBoxList.Add(wellLog_checkBox);  //录井
     m_checkBoxList.Add(drilling_checkBox); //钻井
     isComboxInstClear = false;
     m_recordAttributesList.Add("index");
     m_recordAttributesList.Add("describe");
     m_itemAttributesList.Add("index");
     m_itemAttributesList.Add("describe");
     m_itemAttributesList.Add("short-mnemonic");
     //TSMdt = this.CreateStatusMonitorDT();
     //dataGridView_StatusMonitor.DataSource = TSMdt;
     StatusThread = new Thread(new ThreadStart(updatestatus));
     //Pusher._pusher.ConnectTest();
     this.Interval = int.Parse(Properties.Settings.Default.Interval.ToString());
     this.Repeat   = int.Parse(Properties.Settings.Default.Repeat.ToString());
     this.Fps      = int.Parse(Properties.Settings.Default.FPS.ToString());
 }
예제 #8
0
        public MainWindow()
        {
            InitializeComponent();

#if USE_MMTIMER
            timer_ = new MMTimer(Tick, null, null, true)
            {
                Interval = 200,
            };
            timer_.Start();
#elif USE_DISPATCHERTIMER
            timer_ = new DispatcherTimer
            {
                Interval = TimeSpan.FromMilliseconds(50),
            };
            timer_.Tick += Timer__Tick;
            timer_.Start();
#else
            CompositionTarget.Rendering += CompositionTarget_Rendering;
#endif
        }