diff --git a/src/Avalonia.Windowing/Bindings/EventsLoop.cs b/src/Avalonia.Windowing/Bindings/EventsLoop.cs index d11015abd1..cc33a752f0 100644 --- a/src/Avalonia.Windowing/Bindings/EventsLoop.cs +++ b/src/Avalonia.Windowing/Bindings/EventsLoop.cs @@ -55,16 +55,9 @@ namespace Avalonia.Windowing.Bindings ); } - static TimerDel del = new TimerDel(() => + public void RunTimer(TimerDel del) { - Console.WriteLine("WRK"); - }); - - public void RunTimer() - { - winit_events_loop_timer( - del); - + winit_events_loop_timer(del); } public void Wakeup() diff --git a/src/Avalonia.Windowing/WIndowingPlatform.cs b/src/Avalonia.Windowing/WIndowingPlatform.cs index b2baea9374..522540cabe 100644 --- a/src/Avalonia.Windowing/WIndowingPlatform.cs +++ b/src/Avalonia.Windowing/WIndowingPlatform.cs @@ -7,6 +7,7 @@ using Avalonia.Input; using Avalonia.Platform; using Avalonia.Threading; using Avalonia.Windowing.Bindings; +using static Avalonia.Windowing.Bindings.EventsLoop; namespace Avalonia.Windowing { @@ -127,10 +128,17 @@ namespace Avalonia.Windowing _eventsLoop.Wakeup(); } + private IList timerTickers = new List(); + public IDisposable StartTimer(DispatcherPriority priority, TimeSpan interval, Action tick) { - _eventsLoop.RunTimer(); - return Disposable.Create(() => { }); + var x = new TimerDel(tick); + timerTickers.Add(x); + + _eventsLoop.RunTimer(x); + return Disposable.Create(() => { + // timerTickers.Remove(x); + }); } } }