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

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

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

12 ответов

21 просмотр

Делать 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 твой метод асинхронный...

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

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта