1
0
mirror of https://github.com/chylex/Minecraft-Phantom-Panel.git synced 2025-09-06 16:53:11 +02:00
Files
2025-08-21 20:31:21 +02:00

32 lines
624 B
C#

namespace Phantom.Utils.Tasks;
public sealed class Throttler {
private readonly TimeSpan interval;
private DateTime lastInvocation;
public Throttler(TimeSpan interval) {
this.interval = interval;
this.lastInvocation = DateTime.Now;
}
public bool Check() {
var now = DateTime.Now;
if (now - lastInvocation >= interval) {
lastInvocation = now;
return true;
}
return false;
}
public async Task Wait() {
var now = DateTime.Now;
var waitTime = lastInvocation + interval - now;
if (waitTime > TimeSpan.Zero) {
await Task.Delay(waitTime);
}
lastInvocation = DateTime.Now;
}
}