title: Progress bar in uploading Xml file
body: <p>i want to use a background thread for the process of loading the XML data, possibly with a progress bar to let the user know that the application is actively doing something. 
  i have written this code through searching the net.<br>
  i want to load a XML tree in treeview on winform when a user cliks a Browse button.
  In case of a large XML file the winform freezes.So to let the user know that in background the work is going on i want to add a progress bar.i have used a background worker here. </p>
  
  <p>But it is raising an exception of  System.ArgumentException showing this message "The URL cannot be empty.\r\nParameter name: url" on     <strong><em>xmlDocument.Load(txtFileName.Text);</em></strong>  this line.<br>
  My xml file is in correct format and is at the proper location where i selected.
  But i am unable to find the cause of this exception.
  Can you please help out or tell me the correction in my code?<br>
  Thanks....  </p>
  
  <pre><code>       private void btnBrowse_Click(object sender,EventArgs e)
          {
              bgWorker1.RunWorkerAsync();
              StripProgressBar.Value = 0;
              toolStripStatusLabel1.Text = "Browsing for a  Xml file";
  
              if (open.ShowDialog(this) == DialogResult.OK)
              {
                  txtFileName.Text = open.FileName;
                  initiatingTree(open.FileName); //this variable gives the name of selected file
              }
              while (this.bgWorker1.IsBusy)
              {
                  StripProgressBar.Increment(1);
                  // Keep UI messages moving, so the form remains
                  // responsive during the asynchronous operation.
                  Application.DoEvents();
              }
          }//Browse button      
          private void bgWorker1_DoWork(object sender, DoWorkEventArgs e)
          {
              xmlDocument = new XmlDocument();
              Thread.Sleep(5000);
              xmlDocument.Load(txtFileName.Text);
              btnBrowse.Enabled = false;
          }
          private void bgworker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
           {
               // Set progress bar to 100% in case it's not already there.
               StripProgressBar.Value = 100;
               if (e.Error == null)
               {
                   MessageBox.Show(xmlDocument.InnerXml, "Download Complete");
               }
               else
               {
                   MessageBox.Show("Failed to download file");
               }
               // Enable the Browse button and reset the progress bar.
               this.btnBrowse.Enabled = true;
               StripProgressBar.Value = 0;
               toolStripStatusLabel1.Text = "work finished processing request.";  
           }//workerCompleted  
  </code></pre>