private void BWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { this.OnHandledException(e.Error); this.OnProgressStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None)); } else if (e.Cancelled) { } else { if (e.Result is PSO2UpdateResult) { PSO2UpdateResult updateresult = e.Result as PSO2UpdateResult; switch (updateresult.StatusCode) { case UpdateResult.Failed: LogManager.GeneralLog.Print(updateresult.StatusMessage, LogLevel.Error); break; case UpdateResult.MissingSomeFiles: LogManager.GeneralLog.Print(updateresult.StatusMessage, LogLevel.Error); break; default: LogManager.GeneralLog.Print(updateresult.StatusMessage); break; } this.OnProgressStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None)); } } }
private void Anothersmallthreadpool_KaboomFinished(object sender, KaboomFinishedEventArgs e) { this.OnProgressStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None)); if (e.Error != null) { this.OnHandledException(e.Error); if (this.myFileList.Count > 0) { this.myFileList.Clear(); } anothersmallthreadpool.Dispose(); } else { LogManager.GeneralLog.Print(PSO2UpdateResult.GetMsg(e.Result, e.FailedList == null ? 0 : e.FailedList.Count), LogLevel.Info); System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(delegate { switch (e.Result) { case UpdateResult.Cancelled: if (e.UserToken != null && e.UserToken is PrepatchWorkerParams) { PrepatchWorkerParams wp = e.UserToken as PrepatchWorkerParams; if (this.myFileList.Count > 0) { this.myFileList.Clear(); } this.OnPrepatchDownloaded(new PSO2NotifyEventArgs(true, false, e.FailedList)); } break; case UpdateResult.Failed: if (e.UserToken != null && e.UserToken is PrepatchWorkerParams) { PrepatchWorkerParams wp = e.UserToken as PrepatchWorkerParams; if (this.myFileList.Count > 0) { this.myFileList.Clear(); } this.OnPrepatchDownloaded(new PSO2NotifyEventArgs(wp.NewVersion.ToString(" revision "), false, e.FailedList)); } break; default: if (e.UserToken != null && e.UserToken is PrepatchWorkerParams) { PrepatchWorkerParams wp = e.UserToken as PrepatchWorkerParams; if (this.myFileList.Count > 0) { this.WritePatchListOut(wp.PSO2Path); this.myFileList.Clear(); } MySettings.PSO2PrecedeVersion = wp.NewVersion; this.OnPrepatchDownloaded(new PSO2NotifyEventArgs(wp.NewVersion.ToString(" revision "), false)); } break; } anothersmallthreadpool.Dispose(); })); } }
private void Anothersmallthreadpool_KaboomFinished(object sender, KaboomFinishedEventArgs e) { this.OnProgressStateChanged(new ProgressBarStateChangedEventArgs(Forms.MyMainMenu.ProgressBarVisibleState.None)); if (e.Error != null) { this.OnHandledException(e.Error); } else { LogManager.GeneralLog.Print(PSO2UpdateResult.GetMsg(e.Result, e.FailedList == null ? 0 : e.FailedList.Count), LogLevel.Info); switch (e.Result) { case UpdateResult.Cancelled: if (e.UserToken != null && e.UserToken is WorkerParams) { WorkerParams wp = e.UserToken as WorkerParams; if (wp.Installation) { this.OnPSO2Installed(new PSO2NotifyEventArgs(true, wp.PSO2Path, e.FailedList)); } else { this.OnPSO2Installed(new PSO2NotifyEventArgs(true, false, e.FailedList)); } } break; case UpdateResult.Failed: if (e.UserToken != null && e.UserToken is WorkerParams) { WorkerParams wp = e.UserToken as WorkerParams; if (wp.Installation) { MySettings.PSO2Dir = wp.PSO2Path; this.OnPSO2Installed(new PSO2NotifyEventArgs(wp.NewVersionString, wp.PSO2Path, e.FailedList)); } else { this.OnPSO2Installed(new PSO2NotifyEventArgs(wp.NewVersionString, false, e.FailedList)); } } break; default: if (e.UserToken != null && e.UserToken is WorkerParams) { WorkerParams wp = e.UserToken as WorkerParams; if (!string.IsNullOrWhiteSpace(wp.NewVersionString)) { MySettings.PSO2Version = wp.NewVersionString; } if (wp.Installation) { MySettings.PSO2Dir = wp.PSO2Path; this.OnPSO2Installed(new PSO2NotifyEventArgs(wp.NewVersionString, wp.PSO2Path)); } else { this.OnPSO2Installed(new PSO2NotifyEventArgs(wp.NewVersionString, false)); } } break; } } anothersmallthreadpool.Dispose(); }