public EFCoreLock( [NotNull] ILockProvider provider, [NotNull] string resource, TimeSpan timeout) { if (provider is null) { throw new ArgumentNullException(nameof(provider)); } _provider = provider; _provider.Acquire(resource, timeout); _resource = resource; }