c# - 长时间运行时自动显示装载机
问题描述
当我的应用程序被阻止超过 500 毫秒时,我试图显示加载器动画。我希望它是自动的,我不想在每次长时间操作之前添加任何代码。
我知道在 WinForms 中是可能的(我使用了这个:https ://snipplr.com/view/24851/ ),但它在 WPF 中不起作用。我发现我可以用鼠标光标来做到这一点(应用程序繁忙时显示沙漏)
我试图用微调器启动一个窗口。我找到了这个答案(https://stackoverflow.com/a/21411656/10820863),它可以检测长时间操作。问题是如果我从一个不是主线程的线程启动一个窗口,我会得到一个,ThreadException
因为它不是主线程。如果我使用Application.Current.Dispatcher.BeginInvoke
方法,则仅当 UI 不再被阻止时才会出现该窗口。
那么,如果持续时间超过 500 毫秒,如何自动检测长时间操作并显示加载窗口/页面/图像/其他内容?
[编辑] 我不想为每个长函数添加代码,评估哪个函数可能很长的情况。我宁愿有一个自动的方法来为我做这件事。
解决方案
推荐阅读
- node.js - 在 Loopback 应用程序中发出请求时使用不同的错误消息
- java - 使用带有 Azure B2C 的 Spring Boot OAuth 2.0 的身份验证失败
- r - 使用拟合的计量经济学/统计模型来求解非线性方程
- javascript - 我应该使用 babel 还是 webpack?
- logging - 禁用 SSHD 的 journactl 日志
- arrays - 2个数组中的共同元素
- python - 我正在尝试了解 yfinance 模块中“日期”字段的格式
- php - HTTP 会话究竟是如何工作的,在什么情况下它会过期(在 Laravel 中)?
- flutter - Flutter 如何听设备暗色主题瞬间变化
- python-3.x - 如何创建一个不停止程序等待用户输入的命令行界面?