В моем проекте WPF всякий раз, когда пользовательский интерфейс обновляется (например, каждые 5 секунд), загрузка ЦП% увеличивается до 40-50%
Я запускаю таймер для обновления пользовательского интерфейса:
PeriodicTimer = ThreadPoolTimer.CreatePeriodicTimer(async (source) =>
{
await StartRecurringPatientWatcher();
}, period);
private async Task StartRecurringPatientWatcher()
{
try
{
allPatients = _localDb.GetAllPatientsWithProgress().OrderBy(x => x.Priority).ToList();
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
{
//Responsible of updating data
PatientUIWatcherJob.Job(this, _localizationProv, allPatients, Patients, IsDragging);
});
}
(...)