public override void Start() { if (_disposed) { throw new ObjectDisposedException(this.GetType().FullName); } if (!_isLoaded) { throw new AmoebaManagerException("AmoebaManager is not loaded."); } lock (this.ThisLock) { if (this.State == ManagerState.Start) { return; } _state = ManagerState.Start; _connectionsManager.Start(); _downloadManager.Start(); _uploadManager.Start(); _backgroundDownloadManager.Start(); _backgroundUploadManager.Start(); } }