Делать async void но с try catch внутри
т.е все содержимое обмазать try catch?
Может локается с async Task твой метод асинхронный, попробуй Task.Run(async()=> await твой метод).GetAwaiter().GetResult();
Мой код в принципе работает, все ок, просто глаз зацепился за этот async void и то, что его возвращать не стоит и вот думаю, как бы красиво выйти из этого положения. По поводу вашего предложения, хотел бы спросить, что async () => { ... } не является ли тем же async void и мы делаем тоже самое только в другой обертке?
вообще можно взять какую-нибудь ReactiveCommand и прибиндить её к кнопке (сделать приложение по MVVM). тогда можно будет ReactiveCommand.CreateFromTask, {Binding YourCommand} и оно будет выключать саму кнопку, когда таска выполняется (и включать обратно, когда выполнится таска)
это работает и для WPF, и для WinForms, и для Xamarin.Android, и для Xamarin.iOS, и даже для Avalonia
Только таким способом "дожидаешься" конца метода который может там где-то затеряться из-за await. Ну я хз как оно у тебя там прыгает, пробегись через breakpoint если знаешь что это
это просто тестовый проект на понимание тасков, но за ваше предложение спасибо, буду знать что такое вообще есть
Все ок бегает. У меня больше вопрос про то, что не будет ли ничего ужасного, если этом клике будет async void, так как везде где только можно говорится то, что не надо использовать async void
Жутковатые у вас советы (признаю, у меня тоже).
Обсуждают сегодня