Of course, using
System.Threading.Thread.Sleep(SleepDurationInMilliSeconds) to animate an object is normally worse than using Timer, especially when you use only one process ( main process ) with one thread ( main thread ).
But, if you use multi-threading architecture, the Threading model can be better than Timer model, because even in Timer model the main thread can get some troubles.
In my opinion, Java and WPF(Windows Presentation Framework) are using multi-threading model to increase animation speed and user-input-sensitivity.
But the multi-threading is harder to implement than single-threading, so you should carefully consider which model to use.
Thank you for reading my answer. Any question? Please inform me.