Skip to content
Nuvyntra Labs

Documentation

Operation pipeline

How AsyncModelCommand runs through IOperationExecutor: CanExecute, concurrency, timeout, retry, debounce.

Pipeline steps

Every AsyncModelCommand execute goes through IOperationExecutor. The order is CanExecute, concurrency gate, optional timeout, optional retry, optional debounce / throttle, then the delegate. Failures become Outcome and go to IErrorSink / IDialogs. ICommand.Execute never throws. ExecuteAsync still rethrows.

ConcurrencyMode values are Prevent, CancelPrevious, Queue, Allow, and Replace. Timeout, retry, Debounce, and Throttle ship on AsyncCommandOptions. CanExecuteChanged, IsRunning, and State raise on IMainThread. CanExecuteChanged is a weak event so a Button on a popped page does not pin the command.

Discussion

Comment on Plugin.WinUI.MVVMExpress. The thread lives on this component's GitHub repository (nuvyntralabs/Plugin.WinUI.MVVMExpress). Sign in with GitHub — Giscus uses Discussions, Utterances uses Issues.