using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Extensions.Logging; namespace Client { public sealed class NotificationManager { private readonly ILogger _logger; private Queue _messages = new Queue(); public IReadOnlyList Messages => _messages.ToArray(); public event Action OnChange; public NotificationManager(ILogger logger) { _logger = logger; } public void Add(string message) { _messages.Enqueue(message); Task.Run(async () => { await Task.Delay(5000); _messages.Dequeue(); OnChange?.Invoke(); }); OnChange?.Invoke(); } } }