Library for running async loops
AsyncLoopsBackgroundService detects all IAsyncLoop service registrations (such as services.AddSingleton<IAsyncLoop, AsyncLoop()) and run them.
At minimum, the following services needs to be registered:
services.AddHostedService<AsyncLoopsBackgroundService>(); /* background service which runs the loops */
services.AddSingleton<IAsyncLoop, AsyncLoop>(); /* custom async loop, expending `AsyncLoopBase` or implementing `IAsyncLoop` */
services.AddSingleton<AsyncLoopConfiguration>(); /* only if applied to all async loops */
/* dependencies */
services.AddSingleton<ITask, TaskDelayWrapper>();
services.AddSingleton<IDateTime, DateTimeWrapper>();