private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { // The background process is complete. First we should hide the // modal Progress Form to unlock the UI. The we need to inspect our // response to see if an error occured, a cancel was requested or // if we completed succesfully. // Hide the Progress Form if (m_fmProgress != null) { m_fmProgress.Hide(); m_fmProgress = null; } // Check to see if an error occured in the // background process. if (e.Error != null) { MessageBox.Show(e.Error.Message); return; } // Check to see if the background process was cancelled. if (e.Cancelled) { MessageBox.Show("Processing cancelled."); return; } // Everything completed normally. // process the response using e.Result MessageBox.Show("Processing is complete."); }
private void bnSync_Click(object sender, EventArgs e) { // Create a background thread BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); // Create a progress form on the UI thread m_fmProgress = new fmProgress(); // Kick off the Async thread bw.RunWorkerAsync(); // Lock up the UI with this modal progress form. m_fmProgress.ShowDialog(this); m_fmProgress = null; }