AsyncCommand

Ecng.ComponentModel

Async delegate command capable of taking argument.

Inherits: NotifiableObject

Implements: IRevalidatableCommand, ICommand, IDisposable

Constructors

AsyncCommand
public AsyncCommand(Func<T, CancellationToken, Task> execute, Func<T, bool> canExecute, bool allowMultipleExecution)
asyncCommand = AsyncCommand(execute, canExecute, allowMultipleExecution)

Creates a new async command.

execute
The async execution logic.
canExecute
The execution status logic.
allowMultipleExecution
Allow multiple concurrent executions.
AsyncCommand
public AsyncCommand(Func<T, Task> execute, Func<T, bool> canExecute, bool allowMultipleExecution)
asyncCommand = AsyncCommand(execute, canExecute, allowMultipleExecution)

Creates a new async command without cancellation support.

execute
The async execution logic.
canExecute
The execution status logic.
allowMultipleExecution
Allow multiple concurrent executions.

Properties

CancelCommand
public IRevalidatableCommand CancelCommand { get; }
value = asyncCommand.CancelCommand

Gets the command to cancel the current execution.

IsCancellationRequested
public bool IsCancellationRequested { get; }
value = asyncCommand.IsCancellationRequested

Gets whether cancellation has been requested.

IsExecuting
public bool IsExecuting { get; private set; }
value = asyncCommand.IsExecuting
asyncCommand.IsExecuting = value

Gets whether the command is currently executing.

Methods

Cancel
public void Cancel()
asyncCommand.Cancel()

Cancels the current execution.

CanExecute
public bool CanExecute(object parameter)
result = asyncCommand.CanExecute(parameter)
Dispose
public void Dispose()
asyncCommand.Dispose()

Disposes the command and cancels any pending operation.

Dispose
protected virtual void Dispose(bool disposing)
asyncCommand.Dispose(disposing)

Disposes the command resources.

disposing
True if disposing managed resources.
Execute
public void Execute(object parameter)
asyncCommand.Execute(parameter)
ExecuteAsync
public Task ExecuteAsync(T parameter)
result = asyncCommand.ExecuteAsync(parameter)

Executes the command asynchronously.

parameter
The command parameter.

Returns: A task representing the async operation.

RaiseCanExecuteChanged
public void RaiseCanExecuteChanged()
asyncCommand.RaiseCanExecuteChanged()

Invoke CanExecuteChanged event.

Events

CanExecuteChanged
public event EventHandler CanExecuteChanged
asyncCommand.CanExecuteChanged += handler