private void StartButton_Click(object sender, EventArgs e) { StartButton.Enabled = false; CancelButton.Enabled = true; OutputLabel.Text = ""; MyBackgroundWorker.RunWorkerAsync(); //fire event handled by DoWork }
/// <summary> /// 输出批处理的日志 /// </summary> /// <param name="worker"></param> /// <param name="loginfo"></param> public static void outputWorkerLog(MyBackgroundWorker worker, LogType lType, string loginfo) { worker.logType = lType; worker.StatusText = loginfo; worker.ReportProgress(20); System.Threading.Thread.Sleep(100); }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { string strID = DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.ToString("hhmmss") + DateTime.Now.Millisecond.ToString(); MyBackgroundWorker tmpBg = (sender as MyBackgroundWorker); tmpBg.Name = "bg_" + strID; ProgressBar pb = new ProgressBar(); pb.Minimum = 0; pb.Maximum = 100; pb.Name = "pb_" + strID; pb.Width = txtNumber.Width; this.BeginInvoke((MethodInvoker) delegate { flowLayoutPanel1.Controls.Add(pb); }); dct.Add(tmpBg.Name, pb.Name); int input = (int)e.Argument; for (int i = 1; i <= input; i++) { Console.WriteLine(tmpBg.Name + ": " + (i * 100 / input)); //for testing (this line slows the program down a lot) tmpBg.ReportProgress(i * 100 / input); if (tmpBg.CancellationPending) { e.Cancel = true; return; } } }
void texProcess_OutputDataReceived(object sender, DataReceivedEventArgs e) { MyBackgroundWorker.BeginInvoke(new Action(delegate() { AddStatusLine(e.Data); //txtOutput.Text += e.Data + Environment.NewLine; })); }
private void buttonStart_Click(object sender, EventArgs e) { buttonStart.Enabled = false; buttonCancel.Enabled = true; labelOutput.Text = ""; MyBackgroundWorker.RunWorkerAsync();// execute DoWork method }
private void Start_Click(object sender, EventArgs e) { Start.Enabled = false; Cancel.Enabled = true; OutputLabel.Text = ""; MyBackgroundWorker.RunWorkerAsync(); }
private void StartButton_Click(object sender, EventArgs e) { StartButton.Enabled = false; CancelButton.Enabled = true; OutputLabel.Text = ""; // this will fire event which will be handled by "MyBackgroundWorker_DoWork" MyBackgroundWorker.RunWorkerAsync(); }
private void StartButton_Click(object sender, EventArgs e) { StartButton.Enabled = false; CancelButton.Enabled = true; OutputLabel.Text = ""; // Start background worker MyBackgroundWorker.RunWorkerAsync(); }
private void btnStart_Click(object sender, EventArgs e) { backgroundWorker1 = new MyBackgroundWorker(); backgroundWorker1.WorkerReportsProgress = true; backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork); backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted); backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged); backgroundWorker1.RunWorkerAsync(int.Parse(txtNumber.Text)); }
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { MyBackgroundWorker tmpBg = (sender as MyBackgroundWorker); string strName = tmpBg.Name; strName = strName.Substring(3); ProgressBar pb = (ProgressBar)this.flowLayoutPanel1.Controls.Find(("pb_" + strName), true)[0]; pb.Value = 100; //MessageBox.Show("Done"); }
private void CloseButton_Click(object sender, EventArgs e) { try { CloseButton.Enabled = false; StatusLabel.Text = "Attempting to cancel, please wait..."; MyBackgroundWorker.CancelAsync(); MyCancelled = true; } catch (Exception ex) { HandleError("Error when cancelling operation.", ex); } }
/// <summary> /// 构造函数 /// </summary> public frm_Progress() { InitializeComponent(); backgroundWorker = new MyBackgroundWorker(); backgroundWorker.WorkerReportsProgress = true; backgroundWorker.WorkerSupportsCancellation = true; //backgroudWorker.DoWork += new DoWorkEventHandler(backgroundCalculator_DoWork); backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged); backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted); backgroundWorker.Disposed += new EventHandler(backgroundWorker_Disposed); sTime = DateTime.Now; updateStatus("开始时间:" + sTime.ToString()); updateStatus("*****************************************************************************"); updateStatus("开始执行"); }
void CloseTimer_Tick(object sender, EventArgs e) { MyBackgroundWorker.Invoke(delegate { CloseCountDown--; if (CloseCountDown == 0) { if (RequestClose != null) { RequestClose(this, new EventArgs()); } } else { CloseButtonText = "Close [" + CloseCountDown + "s]"; } }); }
// This event handler updates the progress bar. private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { MyBackgroundWorker tmpBg = (sender as MyBackgroundWorker); string strName = tmpBg.Name.Substring(3); ProgressBar pb; if (!string.IsNullOrEmpty(strName)) { foreach (Control c in flowLayoutPanel1.Controls) { if (c.Name == ("pb_" + strName)) { pb = (ProgressBar)c; pb.Value = Math.Min(100, e.ProgressPercentage); } } } }
void texProcess_Exited(object sender, EventArgs e) { MyBackgroundWorker.Invoke(new Action(delegate() { CloseButtonText = "Close"; ProgressBarVisible = false; if (texProcess.ExitCode == 0) { AddStatusLine("htlatex returned with exit code 0"); bool success1 = CopyOutputFiles(); bool success2 = CleanUp(); // if successful, start autoclose timer if (success1)// && success2) { SuccessLabelVisible = true; CloseButtonText = "Close [" + CloseCountDown + "s]"; CloseTimer.Start(); } else { //lblFailed.Text = "Error: export failed"; CloseButtonText = "Close"; FailedLabelVisible = true; } } else { AddStatusLine("Error: compilation failed"); CloseButtonText = "Close"; FailedLabelVisible = true; CleanUp(); } })); }
public void AnimateProgressBar() { MyBackgroundWorker.RunWorkerAsync(); }
public HttpResponseMessage SendCommissioning(string serial, bool withChildren) { var guid = MyBackgroundWorker.AddItem(new Request(serial, withChildren)); return(guid); }
static void ApplyPatch(List <string> patchFile, string patchType, string epicFolder = null, bool backupPKG = true, bool extractPatch = false) { Console.WriteLine("Applying " + patchType + " patch..."); if (epicFolder == null) { epicFolder = @"C:\Program Files\Epic Games\KH_1.5_2.5\Image\en\"; if (patchType == "DDD") { epicFolder = null; } } while (!Directory.Exists(epicFolder)) { if (patchType == "KH1" || patchType == "KH2" || patchType == "BBS" || patchType == "COM") { Console.WriteLine("If you want to patch KH1, KH2, Recom or BBS, please drag your \"en\" folder (the one that contains kh1_first, kh1_second, etc.) located under \"Kingdom Hearts HD 1 5 and 2 5 ReMIX/Image/\" here, and press Enter:"); epicFolder = Console.ReadLine().Trim('"'); } else if (patchType == "DDD") { Console.WriteLine("If you want to patch Dream Drop Distance, please drag your \"en\" folder (the one that contains kh3d_first, kh3d_second, etc.) located under \"Kingdom Hearts HD 2 8 Final Chapter Prologue/Image/\" here, and press Enter:"); epicFolder = Console.ReadLine().Trim('"'); } } string timestamp = DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss_ms"); string tempFolder = ""; if (extractPatch) { Console.WriteLine("Extracting patch..."); if (GUI_Displayed) { status.Text = $"Extracting patch: 0%"; } tempFolder = patchFile[0] + "_" + timestamp; Directory.CreateDirectory(tempFolder); } MyBackgroundWorker backgroundWorker1 = new MyBackgroundWorker(); backgroundWorker1.ProgressChanged += (s, e) => { Console.WriteLine((string)e.UserState); if (GUI_Displayed) { status.Text = (string)e.UserState; } }; backgroundWorker1.DoWork += (s, e) => { string epicBackup = Path.Combine(epicFolder, "backup"); Directory.CreateDirectory(epicBackup); ZipFiles = new List <ZipFile>(); for (int i = 0; i < patchFile.Count; i++) { using (ZipFile zip = ZipFile.Read(patchFile[i])){ if (extractPatch) { totalFiles = zip.Count; filesExtracted = 0; currentExtraction = patchFile[i]; zip.ExtractProgress += new EventHandler <ExtractProgressEventArgs>(ExtractionProgress); zip.ExtractAll(tempFolder, ExtractExistingFileAction.OverwriteSilently); } else { ZipFiles.Insert(0, zip); } } } backgroundWorker1.ReportProgress(0, "Applying patch..."); bool foundFolder = false; for (int i = 0; i < khFiles[patchType].Length; i++) { backgroundWorker1.ReportProgress(0, $"Searching {khFiles[patchType][i]}..."); string epicFile = Path.Combine(epicFolder, khFiles[patchType][i] + ".pkg"); string epicHedFile = Path.Combine(epicFolder, khFiles[patchType][i] + ".hed"); string patchFolder = Path.Combine(tempFolder, khFiles[patchType][i]); string epicPkgBackupFile = Path.Combine(epicBackup, khFiles[patchType][i] + (!backupPKG ? "_" + timestamp : "") + ".pkg"); string epicHedBackupFile = Path.Combine(epicBackup, khFiles[patchType][i] + (!backupPKG ? "_" + timestamp : "") + ".hed"); try{ if (((!extractPatch && OpenKh.Egs.ZipManager.DirectoryExists(khFiles[patchType][i])) || (extractPatch && Directory.Exists(patchFolder))) && File.Exists(epicFile)) { foundFolder = true; if (File.Exists(epicPkgBackupFile)) { File.Delete(epicPkgBackupFile); } File.Move(epicFile, epicPkgBackupFile); if (File.Exists(epicHedBackupFile)) { File.Delete(epicHedBackupFile); } File.Move(epicHedFile, epicHedBackupFile); backgroundWorker1.ReportProgress(0, $"Patching {khFiles[patchType][i]}..."); backgroundWorker1.PKG = khFiles[patchType][i]; OpenKh.Egs.EgsTools.Patch(epicPkgBackupFile, (!extractPatch ? khFiles[patchType][i] : patchFolder), epicFolder, backgroundWorker1); if (!backupPKG) { if (File.Exists(epicPkgBackupFile)) { File.Delete(epicPkgBackupFile); } File.Move(Path.Combine(epicFolder, khFiles[patchType][i] + "_" + timestamp + ".pkg"), Path.Combine(epicFolder, khFiles[patchType][i] + ".pkg")); if (File.Exists(epicHedBackupFile)) { File.Delete(epicHedBackupFile); } File.Move(Path.Combine(epicFolder, khFiles[patchType][i] + "_" + timestamp + ".hed"), Path.Combine(epicFolder, khFiles[patchType][i] + ".hed")); } } }catch (Exception ex) { Console.WriteLine(ex.ToString()); } } if (extractPatch && Directory.Exists(tempFolder)) { Directory.Delete(tempFolder, true); } if (!foundFolder) { string error = "Could not find any folder to patch!\nMake sure you are using the correct path for the \"en\" folder!"; Console.WriteLine(error); if (GUI_Displayed) { status.Text = ""; } if (GUI_Displayed) { MessageBox.Show(error); } } else { if (GUI_Displayed) { status.Text = ""; } if (GUI_Displayed) { MessageBox.Show("Patch applied!"); } Console.WriteLine("Done!"); } }; backgroundWorker1.RunWorkerCompleted += (s, e) => { if (e.Error != null) { if (GUI_Displayed) { MessageBox.Show("There was an error! " + e.Error.ToString()); } Console.WriteLine("There was an error! " + e.Error.ToString()); } if (GUI_Displayed) { selPatchButton.Enabled = true; } if (GUI_Displayed) { applyPatchButton.Enabled = true; } if (GUI_Displayed) { backupOption.Enabled = true; } }; backgroundWorker1.WorkerReportsProgress = true; backgroundWorker1.RunWorkerAsync(); }
private void CancelButton_Click(object sender, EventArgs e) { MyBackgroundWorker.CancelAsync(); CancelButton.Enabled = false; }
private void CancelButton_Click(object sender, EventArgs e) { //indicates to cancel the background worker. MyBackgroundWorker.CancelAsync(); CancelButton.Enabled = false; }
public void Start() { StatusLabel.Text = "Starting..."; MyBackgroundWorker.RunWorkerAsync(); this.ShowDialog(); }