private void worker_OnProgress(object sender, DUWorkerEventArgs e) { if (e.op.status == OperationStatus.Processing) { lock (locker) { if (!updatedOp.Contains(e.op)) { updatedOp.Add(e.op, e.op); } if (orgDoneSize == 0 || e.op.doneSize < orgDoneSize) { orgDoneSize = e.op.doneSize; speed = 0; totalSize = e.op.totalSize; } else { speed += e.op.doneSize - orgDoneSize; orgDoneSize = e.op.doneSize; totalSize = e.op.totalSize; } } } }
private void Worker_OnThreadChanged(object sender, DUWorkerEventArgs e) { lock (locker) { runningThreadCount = e.op.runningThreadCount; totalThreadCount = e.op.totalThreadCount; } }
private void worker_OnCompleted(object sender, DUWorkerEventArgs e) { Interlocked.Add(ref pendingCount, -1); Statistics(e.op, 1); ProgressListview.ProgressSubItem progress = e.op.Tag as ProgressListview.ProgressSubItem; if (progress != null && progress.Owner != null) { lock (locker) { if (updatedOp.Contains(e.op)) { updatedOp.Remove(e.op); } } if (lvItems.InvokeRequired) { lvItems.Invoke(new AnonymousFunction(delegate() { progress.ShowProgress = false; progress.ForeColor = GetStatusColor(e.op); progress.Text = GetStatusText(e.op); ListViewItem item = progress.Owner; if (item != null) { item.SubItems[2].Text = GetSizeText(e.op); } })); } else { progress.ShowProgress = false; progress.ForeColor = GetStatusColor(e.op); progress.Text = GetStatusText(e.op); ListViewItem item = progress.Owner; if (item != null) { item.SubItems[2].Text = GetSizeText(e.op); } } } //重置速度计算 lock (locker) { speed = 0; orgDoneSize = 0; } }
private void worker_OnCompleted(object sender, DUWorkerEventArgs e) { Interlocked.Add(ref pendingCount, -1); Statistics(e.op, 1); if (e.op.status == OperationStatus.Fail) { if (AppSettings.RetryWhenDownloadFailed && e.op.operation == Operation.Download) { if (lvItems.InvokeRequired) { lvItems.Invoke(new AnonymousFunction(delegate() { ChangeOpStatus(e.op, OperationStatus.Pending); })); } else { ChangeOpStatus(e.op, OperationStatus.Pending); } return; } else if (AppSettings.RetryWhenUploadFailed && e.op.operation == Operation.Upload) { if (lvItems.InvokeRequired) { lvItems.Invoke(new AnonymousFunction(delegate() { ChangeOpStatus(e.op, OperationStatus.Pending); })); } else { ChangeOpStatus(e.op, OperationStatus.Pending); } return; } } ProgressListview.ProgressSubItem progress = e.op.Tag as ProgressListview.ProgressSubItem; if (progress != null && progress.Owner != null) { lock (locker) { if (updatedOp.Contains(e.op)) { updatedOp.Remove(e.op); } } if (lvItems.InvokeRequired) { lvItems.Invoke(new AnonymousFunction(delegate() { progress.ShowProgress = false; progress.ForeColor = GetStatusColor(e.op); progress.Text = GetStatusText(e.op); ListViewItem item = progress.Owner; if (item != null) { item.SubItems[2].Text = GetSizeText(e.op); } })); } else { progress.ShowProgress = false; progress.ForeColor = GetStatusColor(e.op); progress.Text = GetStatusText(e.op); ListViewItem item = progress.Owner; if (item != null) { item.SubItems[2].Text = GetSizeText(e.op); } } } //重置速度计算 lock (locker) { speed = 0; orgDoneSize = 0; } }
private void worker_OnProgress(object sender, DUWorkerEventArgs e) { if (e.op.status == OperationStatus.Processing) { lock (locker) { if (!updatedOp.Contains(e.op)) updatedOp.Add(e.op, e.op); if (orgDoneSize == 0 || e.op.doneSize < orgDoneSize) { orgDoneSize = e.op.doneSize; speed = 0; } else { speed += e.op.doneSize - orgDoneSize; orgDoneSize = e.op.doneSize; } } } }
private void worker_OnCompleted(object sender, DUWorkerEventArgs e) { Interlocked.Add(ref pendingCount, -1); Statistics(e.op, 1); if (e.op.status == OperationStatus.Fail) { if (AppSettings.RetryWhenDownloadFailed && e.op.operation == Operation.Download) { if (lvItems.InvokeRequired) lvItems.Invoke(new AnonymousFunction(delegate() { ChangeOpStatus(e.op, OperationStatus.Pending); })); else ChangeOpStatus(e.op, OperationStatus.Pending); return; } else if (AppSettings.RetryWhenUploadFailed && e.op.operation == Operation.Upload) { if (lvItems.InvokeRequired) lvItems.Invoke(new AnonymousFunction(delegate() { ChangeOpStatus(e.op, OperationStatus.Pending); })); else ChangeOpStatus(e.op, OperationStatus.Pending); return; } } ProgressListview.ProgressSubItem progress = e.op.Tag as ProgressListview.ProgressSubItem; if (progress != null && progress.Owner != null) { lock (locker) { if (updatedOp.Contains(e.op)) updatedOp.Remove(e.op); } if (lvItems.InvokeRequired) { lvItems.Invoke(new AnonymousFunction(delegate() { progress.ShowProgress = false; progress.ForeColor = GetStatusColor(e.op); progress.Text = GetStatusText(e.op); ListViewItem item = progress.Owner; if (item != null) item.SubItems[2].Text = GetSizeText(e.op); })); } else { progress.ShowProgress = false; progress.ForeColor = GetStatusColor(e.op); progress.Text = GetStatusText(e.op); ListViewItem item = progress.Owner; if (item != null) item.SubItems[2].Text = GetSizeText(e.op); } } //重置速度计算 lock(locker) { speed = 0; orgDoneSize = 0; } }