170 похожих чатов

Привет, есть такой код. Что делать с async void в

buttonTest_Click? Вроде как возвращать async void нельзя, ну или по крайней мере не стоит. Меняя void на Task все перестает работать, естественно. Как можно эту проблему решить?

12 ответов

14 просмотров

Делать async void но с try catch внутри

trane254- Автор вопроса
A K
Делать async void но с try catch внутри

т.е все содержимое обмазать try catch?

Может локается с async Task твой метод асинхронный, попробуй Task.Run(async()=> await твой метод).GetAwaiter().GetResult();

trane254- Автор вопроса
Marshall
Может локается с async Task твой метод асинхронный...

Мой код в принципе работает, все ок, просто глаз зацепился за этот async void и то, что его возвращать не стоит и вот думаю, как бы красиво выйти из этого положения. По поводу вашего предложения, хотел бы спросить, что async () => { ... } не является ли тем же async void и мы делаем тоже самое только в другой обертке?

вообще можно взять какую-нибудь ReactiveCommand и прибиндить её к кнопке (сделать приложение по MVVM). тогда можно будет ReactiveCommand.CreateFromTask, {Binding YourCommand} и оно будет выключать саму кнопку, когда таска выполняется (и включать обратно, когда выполнится таска)

ιπταμενο ψαρι
вообще можно взять какую-нибудь ReactiveCommand и ...

это работает и для WPF, и для WinForms, и для Xamarin.Android, и для Xamarin.iOS, и даже для Avalonia

trane254
Мой код в принципе работает, все ок, просто глаз з...

Только таким способом "дожидаешься" конца метода который может там где-то затеряться из-за await. Ну я хз как оно у тебя там прыгает, пробегись через breakpoint если знаешь что это

trane254- Автор вопроса
ιπταμενο ψαρι
вообще можно взять какую-нибудь ReactiveCommand и ...

это просто тестовый проект на понимание тасков, но за ваше предложение спасибо, буду знать что такое вообще есть

trane254- Автор вопроса
Marshall
Только таким способом "дожидаешься" конца метода к...

Все ок бегает. У меня больше вопрос про то, что не будет ли ничего ужасного, если этом клике будет async void, так как везде где только можно говорится то, что не надо использовать async void

Marshall
Может локается с async Task твой метод асинхронный...

Жутковатые у вас советы (признаю, у меня тоже).

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
70
Здравствуйте. Задача состоит в том, чтобы сделать real-time чат в мобильном приложении. После передачи сообщения пользователем через веб-сокеты, для основного и долговременног...
🐾
5
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Люди добрые, помогите с идеями, потому что свои закончились. У клиента падает софтина в момент инициализации модуля OtlEventMonitor на RegisterWindowMessage('Gp/OtlTaskEvents/...
Михаил Усков
7
Тут просто дело в том, что я не могу сейчас дать такие подробности из за того что рассчитать это всё нереально. Этого проекта который я хочу сделать ещё даже не существует) И ...
🐾
8
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
2
GridView fully ignored first parent(SizedBox), and take width from second parent(Container). How can I constrain GridView by first parent? Widget build(BuildContext context) {...
Hamster
1
Карта сайта