# Interface ILockProvider

Namespace
  adas_core.Application.Services.Interfaces

Assembly
  adas-core.Application.dll

Contrato genérico para un proveedor de locks por clave. CacheService usará una implementación local en memoria. RedisService podría usar una distribuida (si fuera necesario).

    public interface ILockProvider

Extension Methods
  NumberUtils.IsNumber(object)
  NumberUtils.ToDouble(object)
  ObjectUtils.ToStr(object?)

## Methods

### AcquireAsync(string, TimeSpan)

Intenta adquirir el lock para una clave dentro del timeout.

    Task<bool> AcquireAsync(string key, TimeSpan timeout)

#### Parameters

`key` string
`timeout` TimeSpan

#### Returns

Task<bool>

### ReleaseAsync(string)

Libera el lock para la clave (idempotente).

    Task ReleaseAsync(string key)

#### Parameters

`key` string

#### Returns

Task