Debouncer.Sharp 1.0.2

dotnet add package Debouncer.Sharp --version 1.0.2
                    
NuGet\Install-Package Debouncer.Sharp -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Debouncer.Sharp" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Debouncer.Sharp" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Debouncer.Sharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Debouncer.Sharp --version 1.0.2
                    
#r "nuget: Debouncer.Sharp, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Debouncer.Sharp@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Debouncer.Sharp&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Debouncer.Sharp&version=1.0.2
                    
Install as a Cake Tool

Debouncer.Sharp

Thread-safe debounce primitives for delayed, coalesced async work.

Install

<PackageReference Include="Debouncer.Sharp" Version="1.0.*" />

Or via CLI:

dotnet add package Debouncer.Sharp

Versioning follows CI run numbers (1.0.{run}) on pushes to main.

Basic debouncer

using Debouncer.Sharp;

using var debouncer = new Debouncer(TimeSpan.FromMilliseconds(250));

await debouncer.HitAsync(async ct =>
{
    await PersistAsync(ct);
});

Each hit cancels any pending action. Only the latest action runs after the delay window.

Async fetch + apply

using Debouncer.Sharp;

var operation = new DebouncedAsync<string, SearchResult>(
    TimeSpan.FromMilliseconds(300),
    fetchAsync: SearchAsync,
    apply: (_, result) => ViewModel.Apply(result),
    shouldApply: (query, _) => query == ViewModel.CurrentQuery,
    cache: null,
    cacheTtl: TimeSpan.FromSeconds(30),
    dispatcher: null);

If you need UI-thread marshalling, implement IDebounceDispatcher and pass it to DebouncedAsync or DebounceFactory.

Dependency injection

using Debouncer.Sharp;
using Microsoft.Extensions.DependencyInjection;

services.AddDebouncing();

// Optional: register a dispatcher for UI-thread apply
services.AddSingleton<IDebounceDispatcher, MyUiDispatcher>();

var factory = serviceProvider.GetRequiredService<IDebounceFactory>();
var cache = serviceProvider.CreateDebounceCache<string, SearchResult>("search");

API overview

Type Purpose
Debouncer Simple delayed action debouncing
DebouncedAsync<TIn, TOut> Debounced fetch with optional cache and apply
DebounceFactory Creates debouncers with optional dispatcher
IDebounceCache<TKey, TValue> Cache abstraction
MemoryCacheDebounceCache<TKey, TValue> IMemoryCache-backed cache
SimpleDictionaryCache<TKey, TValue> In-memory dictionary cache
DebounceServiceExtensions DI registration helpers
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Debouncer.Sharp:

Package Downloads
ComposableSettings

Component-based settings composition with source-generated child wiring, registration, and DI.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 63 6/1/2026