protected abstract void Run (Connection connection, T argument);
protected sealed override Task<object> Run (Connection connection, T argument, CancellationToken cancellationToken) { Run (connection, argument); return Task.FromResult<object> (null); }