コード例 #1
0
 protected virtual void OnKaboomFinished(KaboomFinishedEventArgs e)
 {
     if (this.KaboomFinished != null)
     {
         this.SynchronizationContextObject?.Post(new SendOrPostCallback(delegate { this.KaboomFinished.Invoke(this, e); }), null);
     }
 }
コード例 #2
0
        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();
                }));
            }
        }
コード例 #3
0
        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();
        }