using System.Collections.Concurrent; namespace Tesses.YouTubeDownloader2025Companion; public interface IEventable { Task EventAsync(); } public class TaskList : IEventable { ConcurrentQueue> tasks = new ConcurrentQueue>(); public void Enqueue(Func task) { tasks.Enqueue(task); } public async Task EventAsync() { try { if(tasks.TryDequeue(out var res)) await res(); } catch(Exception ex) { Console.WriteLine(ex); } } }