FIV.Debouncer
1.1.0
dotnet add package FIV.Debouncer --version 1.1.0
NuGet\Install-Package FIV.Debouncer -Version 1.1.0
<PackageReference Include="FIV.Debouncer" Version="1.1.0" />
<PackageVersion Include="FIV.Debouncer" Version="1.1.0" />
<PackageReference Include="FIV.Debouncer" />
paket add FIV.Debouncer --version 1.1.0
#r "nuget: FIV.Debouncer, 1.1.0"
#:package FIV.Debouncer@1.1.0
#addin nuget:?package=FIV.Debouncer&version=1.1.0
#tool nuget:?package=FIV.Debouncer&version=1.1.0
ButtonDebouncer v 1.0.0
Debouncing prevents function calls from executing too rapidly or too many times by button pressing.
In this repo, we have a ButtonDebouncer class that provides a method HandlingBtnPressing({VALUE}) to check if the button is pressed while applying a debounce logic.
How it works
First, the first value that arrives is executed, then over time the tracking window is moved to front to a specified interval. If the value has not changed, then nothing happens. If it has changed, the last one is returned.
Generic version
Could use Int, bool etc.
if(_firstValue.Equals(_lastValue))
Install
dotnet add package FIV.Debouncer --version 1.1.0
Usage Button Debouncer
using FIV.Debouncer;
public class Program{
public static void Main()
{
ButtonDebouncer<int> debouncer = new ButtonDebouncer<int>((v) => Console.WriteLine(v), TimeSpan.FromMilliseconds(1000) );
//Logic to set different values to HandlingBtnPressing
for(int i = 0; i< 100; i++)
{
debouncer.HandlingBtnPressing(i);
}
}
}
Usage Throttle Value
using FIV.Debouncer;
public class Program{
public static void Main()
{
ThrottleValue<int> throttle = new ThrottleValue<int>((v) => Console.WriteLine(v), TimeSpan.FromMilliseconds(1000) );
//Logic to set different values to Handling
for(int i = 0; i< 100; i++)
{
throttle.Handling(i);
}
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.1.0 | 177 | 11/12/2024 |
| 1.0.0 | 188 | 7/19/2024 |
| 0.0.1.1 | 139 | 7/15/2024 |
| 0.0.1 | 153 | 7/11/2024 |
| 0.0.1-alfa | 150 | 7/10/2024 |