Expected. your _DoLoop runs in the same thread as the user interface.
from DispatcherTimer Class MSDN
If System.Timers.Timer is used in WPF, it is worth noting that System.Timers.Timer works on a different thread, then the user interface (UI). In order for access objects in the user interface (UI), you must publish the operation on the Manager thread user interface (UI) using Invoke or BeginInvoke. The reasons for using DispatcherTimer, the opposite of System.Timers.Timer, is that DispatcherTimer works on the same thing as the dispatcher and DispatcherPriority can be set to DispatcherTimer.
If you need to perform time-consuming calculations, run it in another thread to support the user interface.
source share