我需要制作一个加载程序才能在要执行的代码的其余部分之前启动animatin。如何让一段代码只在行前执行? (Android C#)
我有我的代码,它说loader.Animate(),然后做需要4秒完成的东西。但问题是,即使在代码的其余部分之前putin loader.Animate(),只有在所有东西完成后,动画才会启动,就像屏幕冻结一样。
什么是最好的办法,我可以做到这一点就像开始动画,只有在做完剩下的事情之后。我尝试使用Thread.Sleep,但没有工作。
我需要制作一个加载程序才能在要执行的代码的其余部分之前启动animatin。如何让一段代码只在行前执行? (Android C#)
我有我的代码,它说loader.Animate(),然后做需要4秒完成的东西。但问题是,即使在代码的其余部分之前putin loader.Animate(),只有在所有东西完成后,动画才会启动,就像屏幕冻结一样。
什么是最好的办法,我可以做到这一点就像开始动画,只有在做完剩下的事情之后。我尝试使用Thread.Sleep,但没有工作。
这是异步等待很好的用例之一。这里有一个快速示例,应该给你一个想法如何使用它:
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
}
您需要使用多线程。做你的“工作”在一个不同的线程比你做“图形工作”。
问题是我不能继续使用那些需要4秒钟的代码。我不能运行加载程序动画从另一个线程...:/ – user3120770
你必须在另一个线程运行4秒的代码,并在主线程中加载器动画 – Alex
我已经得到它的人,但如果我运行这4秒的代码异步该应用程序不会等待4秒钟,并在完成该过程和错误之前跳到下一个屏幕...我至少需要一个响应或其他东西 – user3120770
你应该考虑移动你需要做的任何事情到一个单独的工作线程。 –