我有一个延迟5秒的页面,因为需要向用户运行加载,因为Web服务太快并且用户需要查看加载,所以我需要这样做。 Page02具有取消按钮,单击该按钮后,应用程序将转到Page01。
问题是当我取消操作时,无论如何都会运行延迟后的代码。
如何避免这种情况?
public Page02()
{
InitializeComponent ();
GetData();
}
private async void GetData()
{
await Task.Delay(5000);
MainPage.actualPage.PushAsync(new Page03());
}
private void Cancel_Clicked(object sender, EventArgs e)
{
App.Current.MainPage = new Page01();
}
答案 0 :(得分:0)
您可以使用bool来检查它们在进入Page03之前是否已取消。像这样...
private bool isCancelled = false;
private async void GetData()
{
await Task.Delay(5000);
if (!isCancelled)
MainPage.actualPage.PushAsync(new Page03());
}
private void Cancel_Clicked(object sender, EventArgs e)
{
isCancelled = true;
App.Current.MainPage = new Page01();
}