WPF 延迟执行下一行代码 求解答

WPF项目,代码执行到某一个地方的时候需要延迟5秒在执行下一行代码,本人现在用的是休眠线程的方法,但这样项目运行的时候执行到那块会出现未响应的状态,求别的更好的解决方法

 DateTime dt = DateTime.Now;
while (true)
{
if (new TimeSpan(DateTime.Now.Ticks - dt.Ticks).TotalSeconds >= 5) break;
Thread.Sleep(100); //100毫秒不会导致界面的悬挂
}

不要在主线程调用sleep ,可以单独新建一个线程去处理。或者使用await 与async