public void Download(DownloadItemBase item) { if (!LazyInit) { LazyInit = true; _lastConnected = true; } lock (_downloadListLock) { _downloadList.Enqueue(item); } var info = new DownloadManagerInfo { FlushSizeKB = FlushSizeKB, TimeoutSecond = TimeoutSecond, }; item.InitManagerInfo(info); item.InitManagerHandler(status => { if (_downloadingList.ContainsKey(item)) { var download = _downloadingList[item]; var state = DownloadState.None; switch (status.State) { case DownloadState.Update: item.SendStatusToUser(); state = DownloadState.Update; break; case DownloadState.Success: item.SendStatusToUser(); state = DownloadState.WaitToRemove; break; case DownloadState.Error: item.SendStatusToUser(); // block error to wait reconnection state = DownloadState.Error; break; } download.State = state; } }); }
public override void InitManagerInfo(DownloadManagerInfo info) { _flushSizeKB = info.FlushSizeKB; _timeoutSecond = info.TimeoutSecond; }
public virtual void InitManagerInfo(DownloadManagerInfo info) { }
public override void InitManagerInfo(DownloadManagerInfo info) { Timeout = info.TimeoutSecond; }