public override void Stop() { lock (_stateLock) { lock (_thisLock) { if (this.State == ManagerState.Stop) return; _state = ManagerState.Stop; } _downloadThread.Join(); _downloadThread = null; } }