Avoid new delegate allocation on each DispatcherTimer tick (#4717)

This commit is contained in:
Stephen Toub 2021-08-17 12:32:25 -04:00 коммит произвёл GitHub
Родитель 111341f44f
Коммит 03b2ac644d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -267,8 +267,8 @@ namespace System.Windows.Threading
// 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 @@ namespace System.Windows.Threading
}
}
private object FireTick(object unused)
private object FireTick()
{
// The operation has been invoked, so forget about it.
_operation = null;