From fdf4efcdff7e9359d44382a7a7fb45814fbf27c0 Mon Sep 17 00:00:00 2001 From: Stephen Toub Date: Tue, 22 Jun 2021 21:37:05 -0400 Subject: [PATCH] Avoid new delegate allocation on each DispatcherTimer tick --- .../WindowsBase/System/Windows/Threading/DispatcherTimer.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Threading/DispatcherTimer.cs b/src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Threading/DispatcherTimer.cs index f9dddb41ebf..35f50796fbd 100644 --- a/src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Threading/DispatcherTimer.cs +++ b/src/Microsoft.DotNet.Wpf/src/WindowsBase/System/Windows/Threading/DispatcherTimer.cs @@ -267,8 +267,8 @@ private void Restart() // BeginInvoke a new operation. _operation = _dispatcher.BeginInvoke( DispatcherPriority.Inactive, - new DispatcherOperationCallback(FireTick), - null); + (DispatcherOperationCallback)(state => ((DispatcherTimer)state).FireTick()), + this); _dueTimeInTicks = Environment.TickCount + (int) _interval.TotalMilliseconds; @@ -297,7 +297,7 @@ internal void Promote() // called from Dispatcher } } - private object FireTick(object unused) + private object FireTick() { // The operation has been invoked, so forget about it. _operation = null;