public void Dispose() { if (_thread?.Join(1000) == false) _thread?.Abort(); _cts?.Dispose(); lock (Threads) Threads.Remove(Name); }