public void TimerCallback(UInt32 timer_id, UInt32 msg, UIntPtr user_ctx, UIntPtr reserve1, UIntPtr reserve2) { if (timer_id != this.TimerID) { throw new InvalidOperationException($"incoming timer id[{timer_id}] != my TimerID[{TimerID}] !!"); } TimerEventArgs arg = new TimerEventArgs(); LastTickTime = arg.SignalTime; OnTimer?.Invoke(this, arg); }
public void FunctionTimer() { Stopwatch watch = new Stopwatch(); watch.Start(); while (EventStopWait.Wait(Period)) { watch.Stop(); if (watch.ElapsedMilliseconds >= Period) { watch.Reset(); var arg = new TimerEventArgs(); this.LastSignalTime = arg.SignalTime; OnTimer?.Invoke(this, arg); } watch.Start(); } //multimedia }