Timers degrading UI performance of WPF application
===

I have a WPF C# GUI application that has a number of menu bars, buttons and grid controls.

In the main XAML form class, I have five System.Timer.Timer objects that are being declared at a class level, then being created and instantiated in the XAML form class constructor as follows (one example)

    var factory = new TaskFactory();
    
                    factory.StartNew(() =>
                                        {
                                            dtEmergencyQueueRefresh = new System.Timers.Timer(EmerTimeoutSecs * 1000);
                                            dtEmergencyQueueRefresh.Elapsed += dtEmergencyQueueRefresh_Tick;
                                            dtEmergencyQueueRefresh.Enabled = true;
                                        }
                                    );

I did this so that they would definitely be started and run on background threads as I noticed slow GUI performance, but it didn't seem to help.

When I commented out all the code to start up the timers and just left them as empty declarations, the GUI performed as expected and was fine.

When I say degraded performance, the clicks still work fine but when you drop down a menu, the "hover" feature doesn't work for about 5-10 seconds so the row you are on doesn't get highlighted, unless you wait 5-10 seconds as I said. 

I also tried going into the callback methods invoked by the timers and commenting out ALL code so the timers were just executing empty methods. The performance was still bad, so just having 5 timers running and calling nothing, still degraded the performance, so it is not the background processing degrading the performance, but rather having timers running at all.

Does anyone have any suggestions as to why this may be happening and how I can have these timers running in the background and not affecting the GUI? 