Solved

BackgroundWorker

Posted on 2008-10-02
4
950 Views
Last Modified: 2013-12-17
I have a form that load data from a database.  While the form is loading I have a pop-up window that says please wait.  I am trying to use the backgroundworker to have it run while the form is loading and disappear after it is done.    How do I use the BackgroundWorker methods (DoWork, RunWorkerCompleted, ProgressChanged) to open a dialog that says "please wait while form is loading" and then automatically closes once the form has loaded.
0
Comment
Question by:MichelleLacy
  • 3
4 Comments
 
LVL 53

Expert Comment

by:Dhaest
ID: 22623052
You can also use a toolstripstatusbar like this example:
http://www.c-sharpcorner.com/UploadFile/LivMic/BGWorker07032007000515AM/BGWorker.aspx
0
 
LVL 53

Accepted Solution

by:
Dhaest earned 500 total points
ID: 22623056
Use the BackgroundWorker component in .NET 2.0.

private Form pleaseWait;
 
private void buttonStart_Click(object sender, EventArgs e)
{
    pleaseWait = new FormPleaseWait();
    pleaseWait.Show();
    backgroundWorker1.RunWorkerAsync();
}
 
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    // Perform a long-running operation here...
}
 
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
    pleaseWait.Close();
} 

Open in new window

0
 
LVL 53

Expert Comment

by:Dhaest
ID: 22623064
I use the ToolStripProgressBar and a label to update the page as the long running process is running in my class.

I have a Win Form called frmActivation and the big process is in a class called cActivation.
So showing the relevant parts I have:

Source: http://discuss.joelonsoftware.com/default.asp?dotnet.12.563832.5
Public Class frmActivation
'The class that has the long running process in it.
  Private WithEvents _Activation As ADEActivationLib.AdvancedDigitalEngines.cActivation
  Private _tspb As ToolStripProgressBar
 
' The start of the big process
    Private Sub Submit()
    
...
        _tspb = CType(CType(Me.ParentForm, MDIParent1).ToolStrip1.Items("ToolStripProgressBar1"), ToolStripProgressBar)
        _tspb.Enabled = True
        _tspb.Value = 10
        Me.lblStatus.Text = "Please Wait, this may take a minute or two."
        Me.lblStatus.Visible = True
        Me.Refresh()
 
    _Activation = New ....
 
 
    End Sub
 
 
 
'An update method that gets called by cActivation at different steps in its processing. 
'Notice the "Handles" part.
 
    Private Sub StatusUpdate(ByVal Message As String) Handles _Activation.StatusChanged
        Me.lblStatus.Text = Message
        _tspb.Value = _tspb.Value + 10
        Me.Refresh()
 
    End Sub
 
End Class
 
'Then in cActivation at different steps I have the following calls:
 
RaiseEvent StatusChanged("Setting up Activation")
RaiseEvent StatusChanged("Getting License from WebService")
RaiseEvent StatusChanged("Geting Current keys if any")
RaiseEvent StatusChanged("Confirming License")
RaiseEvent StatusChanged("Evaluating / Saving License")
etc.

Open in new window

0
 
LVL 5

Expert Comment

by:jose_juan
ID: 22623082
Hi,

set WorkerReportsProgress to true.
define the RunWorkerCompleted to a event handler, when this will be fired then close your window alert.

Good luck!
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question