В UI thread по идее
А вот и нет:)
Ну и куда тогда?
Ошибка здесь проглатывается и никуда не выбрасывается
В никуда
https://github.com/xamarin/XamarinCommunityToolkit/blob/main/src/CommunityToolkit/Xamarin.CommunityToolkit/Behaviors/UserStoppedTypingBehavior.shared.cs
Прикол в том, что ContinueWith не в UI треде выполняется, поэтому там обернули Unfocus в BeginInvoke, но, чтобы сработал проброс ошибки дальше они забыли await сделать
И в таком случае, тут метод команды нужно оборачивать в BeginInvoke, что тоже не очевидно без исходников
Ребят, может кто ответить, почему здесь ошибки в UI они не кидают?При этом, в других Behavior они это делают
Если вопрос про 112 строку, то незачем выбрасывать эту ошибку в UI тред, т.к. она может возникнуть только если OnTextPropertyChanged вызовется повторно (до завершения предыдущего Delay): токен будет отменен и задиспоузен, в предыдущей итерации выбросится эксепшн, который говорит только о том что Delay отменен и больше никакой полезной информации для того что бы ее ловить в UI треде не несет.
Кто этот ексепшн поймает и где с таким кодом?
Еще раз: никто его нигде не поймает, потому что его нет причин ловить - эксепшн просто проглотится в бэкграунд треде. Скорее всего это просто добавлено для наглядности\дебага
А зачем они тогда ошибки выкидывают в UI в другом Behavior?
В каком "другом"?)
https://github.com/xamarin/XamarinCommunityToolkit/blob/main/src/CommunityToolkit/Xamarin.CommunityToolkit/Behaviors/EventToCommandBehavior.shared.cs#L105
она может возникнуть только если OnTextPropertyChanged вызовется повторно (до завершения предыдущего Delay) - и как это вообще возможно?
Это экспшены совсем разного типа. То что вы сейчас скинули сигнализирует клиенту о том что он заинициализировал behavior с неверными параметрами, и естесственно такое должно падать. В предыдущем случаи падение бэкграунд потока потому что он был отменен скорее возможное, ожидаемое поведение, которое никак на UI тред не влияет.
@Xo3_ToBapbl Если таска отменяется, то IsFaulted = false, а Exception = null, кстати
Я кстати тоже помню что-то такое, что OCE обрабатывается по особому, можно ссылку на доку где подробнее почитать? И тогда этот код действительно становится непонятным. Ваши предположения, что он делает? По идее в таком случаи там эксепшену неоткуда взяться
Обсуждают сегодня