Из общего кода причиной, по которой не стоит ждать загрузки данных, может быть следующая строка:
_data = (await ServiceContext.Current.Duas.GetAll()).ToList();
Вам нужно проверить, что ServiceContext.Current.Duas.GetAll()
также содержит метод await
. Если нет, не будет ждать вызова следующей строки кода.
Я покажу пример кода здесь, TaskMethod
может выглядеть как LoadDataMethod.
, если код следующий:
private async void Button_Clicked(object sender, EventArgs e)
{
Console.WriteLine("Start code");
int codeResult = await TaskMethod();
Console.WriteLine("End code :" + codeResult);
}
private async Task<int> TaskMethod()
{
Task.Delay(3000);
return 1;
}
Когда я нажал кнопку, вы увидите результат:
01-10 14:14:48.474 I/mono-stdout( 5920): Start code
01-10 14:14:48.510 I/mono-stdout( 5920): End code :1
Вы не увидите ожидания, затем код завершения. Задание не завершено.
Если код, как следует, вы увидите, как ожидалось.
private async void Button_Clicked(object sender, EventArgs e)
{
Console.WriteLine("Start code");
int codeResult = await TaskMethod();
Console.WriteLine("End code :" + codeResult);
}
private async Task<int> TaskMethod()
{
await Task.Delay(3000);
return 1;
}
Результат:
01-10 14:19:59.396 I/mono-stdout( 6040): Start code
01-10 14:20:02.455 I/mono-stdout( 6040): End code :1
Теперь конец кода пока задание не выполнено.