public class Test
{
public static ManualResetEvent re = new ManualResetEvent(false);
public void Doit()
{
var bg36 = new BackgroundWorker();
bg36.DoWork += bg36_DoWork;
bg36.WorkerReportsProgress = true;
bg36.ProgressChanged += bg36_ProgressChanged;
bg36.RunWorkerAsync();
}
private void bg36_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
if ((string)e.UserState== "save ledgers")
{
SaveLedgers();
Test.re.Set();
}
}
public void SaveLedgers()
{
}
private void bg36_DoWork(Object sender, DoWorkEventArgs e)
{
BackgroundWorker bw = (BackgroundWorker)sender;
bw.ReportProgress(0,"save ledgers");
Test.re.WaitOne();
//Continue
}
}