namespace Universal; public class ParallelHelper : IDisposable { private readonly List _tasks = []; private bool _isStarted = false; void IDisposable.Dispose() { _tasks.ForEach(task => task.Dispose()); _tasks.Clear(); _isStarted = false; } public bool Insert(Action action) { if (_isStarted) return false; Task task = new(action); _tasks.Add(task); return true; } public bool StartnWaitAll() { if (_isStarted) return false; _tasks.ForEach(t => t.Start()); Task.WhenAll(_tasks).Wait(); _isStarted = false; _tasks.Clear(); return true; } public bool StartnWaitAny() { if (_isStarted) return false; _tasks.ForEach(t => t.Start()); Task.WhenAny(_tasks).Wait(); return true; } }