【问题标题】:Done some work during start animation . WPF在开始动画期间做了一些工作。 WPF
【发布时间】:2014-01-15 10:58:46
【问题描述】:

我正在我的 wpf 应用程序中制作一个 sartup 动画屏幕。我想在那个动画期间做一些工作。这该怎么做 ?我想在那段时间做一些粘性的东西?以便我的应用在该动画之后运行得更快。

我该怎么做?

【问题讨论】:

标签: wpf wpf-animation


【解决方案1】:

如果您正在谈论与 UI 无关的“粘性内容”,例如加载一些数据,您可以将繁重的工作转移到后台线程中,例如:

// Start playing loading animation (you can use visual state like Gusdor suggested)
Task.Factory.StartNew(()=>
{
    // Do heavy work here.
}.ContinueWith(task => 
{
    // Stop loading animation here
}, TaskScheduler.FromCurrentSynchronizationContext());

如果您的繁重工作涉及 UI 活动,我建议您在停止 ContinueWith 块中的加载动画之前立即执行此操作。不幸的是,UI 活动只能在 UI 线程上完成,因此无论您在 ContinueWith 块中做什么,都会导致一定程度的 UI 暂停,无论它们是否可观察。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2023-04-04
    • 2019-02-19
    • 1970-01-01
    • 2019-07-18
    相关资源
    最近更新 更多