我需要製作一個加載程序才能在要執行的代碼的其餘部分之前啓動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
你應該考慮移動你需要做的任何事情到一個單獨的工作線程。 –