Found the problem:
It was not the RaiseCanExecuteChanged
, but the actual CanExecute
which is triggered by it. In there I had an AsyncLock
which waited for the programming task to be finished, before returning the value I use to descide if UiCommand
can be executed --> deadlock as the programming task triggered it...
I solved it by simple using the "sync" property (which does not use the lock and just returns the current value/stat) of the value I need.