在开始动画期间做了一些工作。 WPF

时间:2014-01-15 10:58:46

标签: wpf wpf-animation

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

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您正在谈论非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暂停,无论它们是否可观察。