Click here to Skip to main content
15,881,709 members
Please Sign up or sign in to vote.
2.00/5 (1 vote)
See more:
Hi,
I have a background worker that calls a form, holding a gif animation. The purpose is to display the animation while process is underway but it should close when the process is done. But it does not close even after completion of the process. Please help.
Thanks

VB
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
       frmAnimation.ShowDialog()
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       BackgroundWorker1.RunWorkerAsync()
       Dim sqldatasourceenumerator1 As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
       datatable1 = sqldatasourceenumerator1.GetDataSources()
       DataGridView1.DataSource = datatable1

       'I have tried CancelAsync, but did not work

       BackgroundWorker1.CancelAsync()
       frmAnimation.Dispose()
   End Sub
Posted

1 solution

Hi,
Can you please go through the below example.

C#
Form2 myForm = new Form2();
bool bFormOpened = false;
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    BackgroundWorker backgroundWorker = sender as BackgroundWorker;
    if (backgroundWorker != null)
    {
        while (!backgroundWorker.CancellationPending)
        {
            if (!bFormOpened)
            {
                myForm.Show();
                bFormOpened = true;

            }
        }

        // cancellation was processed
        if (backgroundWorker.CancellationPending)
        {
            myForm.Dispose();
            e.Cancel = true;
        }
    }
}

private void button2_Click(object sender, EventArgs e)
{
    backgroundWorker1.RunWorkerAsync();
}

private void button3_Click(object sender, EventArgs e)
{

    backgroundWorker1.CancelAsync();
}


Also , make sure the below two property set as TRUE for backgroundWorker1
- WorkerReportsProgress
- WorkersupportsCancellation

Hope this helps this to you!

Best Regards
Muthuraja
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900