public void FireTaskProgress(ProgressEventType eventType, string file, UpdateProgressData data) { if (eventType == ProgressEventType.Progress && data == UpdateProgressData.FileDone) { ProcessedObjects++; } if (FileTaskProgress != null) { FileTaskProgress(eventType, file, data); } }
void OnFileTaskProgress(ProgressEventType eventType, string file, UpdateProgressData data) { if (eventType == ProgressEventType.KeepAlive) { Application.DoEvents(); } MainThread.Post(delegate(object x) { switch (eventType) { case ProgressEventType.Started: pbOperation.Value = 0; pbOperation.Maximum = 10000; pbOperation.Visible = (_task.ObjectsCount > 1); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.Indeterminate); TaskbarThumbnailManager.Instance.UpdateProgress(0, 10000); break; case ProgressEventType.Aborted: Close(); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.NoProgress); break; case ProgressEventType.Finished: if (_task.ErrorMap.Count > 0) { string message = Translator.Translate($"TXT_ERRORS_{_task.UpperCaseTaskType}_TASK"); new FileTaskErrorReport(_task.ErrorMap, Translator.Translate("TXT_ERRORS_ENCOUNTERED"), message).ShowDialog(); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.Error); } Close(); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.NoProgress); break; case ProgressEventType.KeepAlive: case ProgressEventType.Progress: txtCurFile.Text = file; UpdateProgress(data); break; } }); }
private void UpdateProgress(UpdateProgressData state) { if (state.TotalFileSize > 0) { try { long totalFileSize = (state as UpdateProgressData).TotalFileSize; long totalBytesTransferred = (state as UpdateProgressData).TotalBytesTransferred; double fractionTransfer = 0; if (totalBytesTransferred > 0 && totalFileSize > 0) { fractionTransfer = (double)totalBytesTransferred / (double)totalFileSize; } long processedObjectCount = _task.ProcessedObjects; long totalObjectCount = _task.ObjectsCount; int percent = (int)((100 * (processedObjectCount + fractionTransfer)) / totalObjectCount); pbCurrent.Value = 10000 * fractionTransfer; pbOperation.Value = (10000 * processedObjectCount) / totalObjectCount; lblCurrentProgress.Text = string.Format(_taskProgress, _taskDesc, processedObjectCount, totalObjectCount, percent); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.Normal); TaskbarThumbnailManager.Instance.UpdateProgress( (ulong)((10000 * processedObjectCount) / totalObjectCount), 10000); } catch (Exception ex) { Logger.LogException(ex); } } }
public void FireTaskProgress(ProgressEventType eventType, string file, UpdateProgressData data) { if (FileTaskProgress != null) { FileTaskProgress(eventType, file, data); } }
public Kernel32.CopyFileCallbackAction CopyFileCallback( FileInfo source, FileInfo destination, object state, long totalFileSize, long totalBytesTransferred) { UpdateProgressData data = new UpdateProgressData(totalFileSize, totalBytesTransferred); _task.FireTaskProgress(ProgressEventType.Progress, source.FullName, data); do { Application.DoEvents(); } while (_fileTaskWaitEvent.WaitOne(20, true)); return CanContinue ? Kernel32.CopyFileCallbackAction.Continue : Kernel32.CopyFileCallbackAction.Cancel; }
void OnFileTaskProgress(ProgressEventType eventType, string file, UpdateProgressData data) { if (eventType == ProgressEventType.KeepAlive) { Application.DoEvents(); } MainThread.Post(delegate(object x) { switch (eventType) { case ProgressEventType.Started: pbOperation.Value = 0; pbOperation.Maximum = 10000; pbOperation.Visible = (_task.ObjectsCount > 1); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.Indeterminate); TaskbarThumbnailManager.Instance.UpdateProgress(0, 10000); break; case ProgressEventType.Aborted: Close(); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.NoProgress); break; case ProgressEventType.Finished: if (_task.ErrorMap.Count > 0) { string message = Translator.Translate(string.Format("TXT_ERRORS_{0}_TASK", _task.TaskType.ToString().ToUpperInvariant())); new FileTaskErrorReport(_task.ErrorMap, Translator.Translate("TXT_ERRORS_ENCOUNTERED"), message).ShowDialog(); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.Error); } Close(); TaskbarThumbnailManager.Instance.SetProgressStatus(TaskbarProgressBarStatus.NoProgress); break; case ProgressEventType.KeepAlive: case ProgressEventType.Progress: txtCurFile.Text = file; UpdateProgress(data); break; } }); }