/// <summary> /// 触发解压进度事件 /// </summary> /// <param name="e">数据</param> protected virtual void OnDecompressProgressChanged(DecompressProgressChangedEventArgs e) { DecompressProgressChangedEventHandler handler = this.Events[EVENT_DECOMPRESS_PROGRESS_CHANGED] as DecompressProgressChangedEventHandler; if (handler != null) { handler(this, e); } }
/// <summary> /// 执行解压进度报告回调 /// </summary> /// <param name="progress">进度数据</param> /// <param name="asyncOp">异步生存期</param> private void PostDecompressProgressChanged(ProgressData progress, AsyncOperation asyncOp) { if (asyncOp == null) { return; } int progressPercentage = progress.ToComplete < 0L ? 0 : (progress.ToComplete == 0L ? 100 : (int)(100L * progress.Completed / progress.ToComplete)); DecompressProgressChangedEventArgs eventArgs = new DecompressProgressChangedEventArgs(progressPercentage, asyncOp.UserSuppliedState); this.InvokeOperation(asyncOp, this.m_ReportDecompressProgressChanged, eventArgs); }