SynchronizedOperationBaseRunAsync Method
Executes the action on another thread or marks the operation as pending if the operation is already running.
When the operation is marked as pending, operation will run again after currently running operation has
completed. This is useful if an update has invalidated the operation that is currently running and will
therefore need to be run again.