#c# #.net #xamarin #mobile-development
#c# #.net #xamarin #мобильная разработка
Вопрос:
Например, я уже написал некоторую асинхронную функцию и хочу вызвать ее при нажатии кнопки. Вот так:
static async Task<string> ParseSth(string URL) { ... }
И я хочу вызвать ее, когда я нажимаю эту кнопку:
FindViewById<Button>(Resource.Id.ButtonParse).Click = ...
В Google или YouTube я нашел материал только о выражениях lamda. Итак, как это сделать?
Комментарии:
1. Вы можете сделать свой обработчик кликов асинхронным, а затем вызвать ParseSth оттуда с помощью await . Просто знайте, что любое исключение, вызванное вашим методом, не будет перехвачено, потому что вы добавляете асинхронность в метод void. Другим решением с некоторыми фреймворками MVVM может быть привязка асинхронной команды к нажатию кнопки.
2. Спасибо, я попробовал то, что вы сказали, и это работает нормально, не могли бы вы написать это в ответ на мой вопрос? Я хочу пометить это как ответ
Ответ №1:
Вы можете сделать свой обработчик кликов асинхронным, а затем вызвать ParseSth оттуда с помощью await . Просто знайте, что любое исключение, вызванное вашим методом, не будет перехвачено, потому что вы добавляете асинхронность в метод void.
private async void button_Click(object sender, EventArgs e)
{
await ParseSth(myTextBox.Text); // Any exception thrown here will be lost
}
Другим решением с некоторыми фреймворками MVVM может быть привязка асинхронной команды к нажатию кнопки.