首页 > 解决方案 > 长时间运行时自动显示装载机

问题描述

当我的应用程序被阻止超过 500 毫秒时,我试图显示加载器动画。我希望它是自动的,我不想在每次长时间操作之前添加任何代码。

我知道在 WinForms 中是可能的(我使用了这个:https ://snipplr.com/view/24851/ ),但它在 WPF 中不起作用。我发现我可以用鼠标光标来做到这一点(应用程序繁忙时显示沙漏

我试图用微调器启动一个窗口。我找到了这个答案(https://stackoverflow.com/a/21411656/10820863),它可以检测长时间操作。问题是如果我从一个不是主线程的线程启动一个窗口,我会得到一个,ThreadException因为它不是主线程。如果我使用Application.Current.Dispatcher.BeginInvoke 方法,则仅当 UI 不再被阻止时才会出现该窗口。

那么,如果持续时间超过 500 毫秒,如何自动检测长时间操作并显示加载窗口/页面/图像/其他内容?

[编辑] 我不想为每个长函数添加代码,评估哪个函数可能很长的情况。我宁愿有一个自动的方法来为我做这件事。

标签: c#wpf

解决方案


推荐阅读