Read original post at Tom Peplow's Blog
So the RelayCommand or DelegateCommand (whichever name you prefer) is a well known chap. We created an AsyncRelayCommand which essentially disables the command while an async action is running. This is useful because commands may call services (which are async) and during that call you’d rather the user not do it again.