xamarin/Xamarin.Forms

Crash when calling ChangeCanExecute() from non-UI thread

Aberta

#5.679 aberto em 25 de mar. de 2019

 (2 comentários) (0 reação) (0 responsável)C# (1.926 forks)batch import
e/5 :clock5:help wantedi/highinactivet/bug :bug:up-for-grabs

Métricas do repositório

Stars
 (5.644 estrelas)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

Description

App crashes when running async method which triggers ChangeCanExecute(). I think this should the responsibility of the renderers to trigger any visual updates on the UI thread. The workaround for this problem is to wrap all ChangeCanExecute() in Device.BeginInvokeOnMainThread()

Steps to Reproduce

Run async methods which triggers ChangeCanExecute(). You can i.e. create a button with async Command which changes one of the binding property and this binding property raise ChangeCanExecute() in the setter.

Expected Behavior

App should not crash.

Actual Behavior

App crashes when running async method which triggers ChangeCanExecute(). The problem exists both on Android and iOS.

Basic Information

  • Version with issue: Xamarin Forms 3.6.0.264807
  • Last known good version:
  • IDE: Visual Studio 2017 15.9.4
  • Platform Target Frameworks:
    • iOS: 8.0
    • Android: 8.1

Reproduction Project

Here is a project with a repro:

App1.zip

Guia do colaborador