Re[2]: Зачем нам асинхронность?
От: Kolesiki  
Дата: 05.08.20 11:42
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA>Здравствуйте, Kolesiki, Вы писали:


K>>Но вот async?...

K>>Пусть это будет команда Save. Мы нажали, асинхронно вышли из метода, куда-то даже полезли нажимать другие команды, а save всё ещё работает! Хуже того — у неё могут возникнуть проблемы!
K>>Ну и вот какой смысл "не ждать завершения команды", если всё равно тебе прилетит по лбу? Хуже того — ты понадеялся на УСПЕШНЫЙ сэйв, а документ уже испортил!

MA> 1) испортить документ — это логическая ошибка, безотносительно реализации. Это значит, что надеяться на успешный сэйв очевидно, нельзя. Но это не значит, что он не может быть асинхронным.


Он может быть каким угодно, я спросил про асинк — каким боком он мне поможет, если я не знаю результата операции??
И напоминаю, сэйвы в отдельном потоке никто не отменял.

MA> 2) подвиснуть на 30 секунд сохраняя документ не отрисовывая окно — не очень дружественно к пользователю. Это надо решать.


Никто не говорил про "не отрисовывая". Забудьте про этот атавизм! Давно придуманы потоки, корутины, таски и т.п.

MA> 4) async/await лишь помогает/позволяет записать некоторые взаимодействия в их более-менее естественной форме, без зубодробильного ручного маршаллинга вызовов по потокам


В теории — да. Но как я показал, от того, что кнопка сразу "отжалась", легче никому не стало — ты всё равно обязан либо иметь механизм ожидания долгой операции, либо тупо подождать её завершения, ибо от неё зависит последущая работа (это не только про сэйв).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.