public DownloadManager(ConnectionsManager connectionsManager, CacheManager cacheManager, BufferManager bufferManager)
{
_connectionsManager = connectionsManager;
_cacheManager = cacheManager;
_bufferManager = bufferManager;
_settings = new Settings();
_threadCount = Math.Max(1, Math.Min(System.Environment.ProcessorCount, 32) / 2);
_cacheManager.BlockSetEvents += this.BlockSetThread;
_cacheManager.BlockRemoveEvents += this.BlockRemoveThread;
}