У меня проблемы с асинхронностью, заданием и ожиданием.
Вот как выглядит мой код:
private void nextBtn_Tapped(object sender, RoutedEventArgs e)
{
box.Text = "Searching..."
DoForwardSearch();
}
Теперь моя проблема в том, что изменение текста происходит насамый конец в }
, но это слишком поздно.Мой текст должен измениться до DoForwardSearch()
.Как мне это сделать?
Я пытался использовать Task
, async
и await
, но я не использую это правильно.Я попытался изменить nextBtn_Tapped
на private async void
и написать в нем так:
box.Text = await searchText();
, но как мне настроить searchText()
?
Я попробовал это:
private async System.Threading.Tasks.Task<string> searchtext()
{
string x = await "Searching...";
return x;
}
, но это не так.
private async System.Threading.Tasks.Task<string> searchtext()
{
return "searching...";
}
работает по кодам, но при запуске кода изменение текста происходит так же поздно, как и раньше ... в конце }
из nextBtn_Tapped
edit
одно решение, которое мне удалось сделать:
private async void nextBtn_Tapped(object sender, RoutedEventArgs e)
{
Task<string> help = searchtext();
box.Text = await help; //this is seems weird
DoForwardSearch();
}
private async Task<string> searchtext()
{
box.Text = "Searching...";
await Task.Delay(100); // I kinda want to avoid a delay
return "Searching..."; //this is somewhat unnecessary
}
Я почти уверен, что это не так, как это приятноспособ.