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

Что делать, когда нужно вызвать асинхронный метод в обработчике события? обработчик

события типа void, заменить тип на таск нельзя, ибо он перестанет соответствовать делегату

6 ответов

25 просмотров

Это единственный случай, когда считается приемлемым использовать async void - для интеграции с существующими подписками на события. Но если у вас есть контроль над кодом, который требует void - может стоит поменять на Task?

Джайпхал- Автор вопроса
SomebodyOdd
Это единственный случай, когда считается приемлемы...

контроля, к сожалению нет, это .net'овские события значит юзать асинк войд?

Джайпхал- Автор вопроса
SomebodyOdd
WPF/Winforms?

WPF (разработка расширения для VS)

Джайпхал
WPF (разработка расширения для VS)

Ну да, тогда async void. Но только понимайте, что на первом же await поток будет отпущен гулять и, теоретически, событие может быть вызвано ещё до того, как отработал предыдущий обработчик. Ну и с контекстом синхронизации тоже можно огрести

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: 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
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
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
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта