I am using background worker class in code as
private void bwFilter_DoWork(object sender, DoWorkEventArgs e)
{
//Some Code
}
private void bwFilter_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//Some code
}
Now i am calling this events in a button click as
btnClick_Click(Object Sender,EventArgs e)
{
bwFilter.RunWorkerAsync();
}
Now i wanna do something in btnClick only after bwFilter_RunWorkerCompleted is completed. I try the follwing but result in deadlock situation
btnClick_Click(Object Sender,EventArgs e)
{
bwFilter.RunWorkerAsync();
While(bwFilter.IsBusy)
{
Continue;
}
//Start coding Again Here
}
Waiting for the background worker to finish completely defeats the point of using a worker. And inevitably causes deadlock.
So just don’t bother, call bwFilter_DoWork() directly.