diff --git a/ProcessCpuUsageWatcher.cs b/ProcessCpuUsageWatcher.cs index acabdb4..dc0dbb8 100644 --- a/ProcessCpuUsageWatcher.cs +++ b/ProcessCpuUsageWatcher.cs @@ -32,9 +32,9 @@ namespace ProcessCpuUsageStatusWindow #region Initialize and terminate - public void Initialize(TimeSpan updateInterval, ProcessListUpdatedDelegate callback) + public void Initialize(TimeSpan updateInterval, ProcessListUpdatedDelegate callback, Dispatcher dispatcher) { - _dispatcher = Dispatcher.CurrentDispatcher; + _dispatcher = dispatcher; // Create a new dictionary for the process list CurrentProcessList = new Dictionary(); diff --git a/WindowSource.cs b/WindowSource.cs index e2137dd..b22e91b 100644 --- a/WindowSource.cs +++ b/WindowSource.cs @@ -1,4 +1,6 @@ -using FloatingStatusWindowLibrary; +using System.Threading.Tasks; +using System.Windows.Threading; +using FloatingStatusWindowLibrary; using ProcessCpuUsageStatusWindow.Properties; using System; using System.Collections.Generic; @@ -18,7 +20,9 @@ namespace ProcessCpuUsageStatusWindow _floatingStatusWindow.SetText(Resources.Loading); _processCpuUsageWatcher = new ProcessCpuUsageWatcher(); - _processCpuUsageWatcher.Initialize(Settings.Default.UpdateInterval, UpdateDisplay); + + var dispatcher = Dispatcher.CurrentDispatcher; + Task.Factory.StartNew(() => _processCpuUsageWatcher.Initialize(Settings.Default.UpdateInterval, UpdateDisplay, dispatcher)); } public void Dispose()