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