我需要让一个加载器在执行其余代码之前启动animatin。
我有我的代码并且它表示loader.Animate()然后执行需要4秒钟完成的事情。但问题是,即使在其余的代码之前放入loader.Animate(),动画也会在所有内容完成之后启动,就像屏幕冻结一样。
最好的方法是什么才能使这个像开始制作动画一样正确,只有在完成剩下的工作之后。我尝试使用Thread.Sleep但没有用。
答案 0 :(得分:2)
这是async await非常棒的用例之一。这是一个快速示例,可以让您了解如何使用它:
protected override async void OnResume()
{
base.OnResume ();
StartAnimate ();
await RunAsync (TimeSpan.FromSeconds (4));
StopAnimate ();
}
private async Task RunAsync(TimeSpan span)
{
await Task.Delay (span);
}
private void StartAnimate()
{
// put animation here
}
private void StopAnimate()
{
// stop animating after the thread has ended
}
答案 1 :(得分:1)
您需要使用多线程。将你的“工作”放在与你的“图形工作”不同的线程中。