title: How to allow backgroundworker to update UI and set (metro) progressring for it?
body: <p>I'm working with c# only a half year ago,I'm learning.
  I have a program which is helping me at my work,It communicates with 4 kind of databases at my workplace. It's working perfectly,but now i want to design to make It much cooler,but I stuck when i wanted to setup a progress ring,because my methods freeze UI while they are communicating with my databases.
  I want to setup a background worker,i tried everything what i found even invoke too but nothing made it work.</p>
  
  <pre><code>public partial class MainWindow : MetroWindow
  {
      BackgroundWorker workerThread = null;
  
      public MainWindow()
      {
          InitializeComponent();
          InstantiateWorkerThread();
  
          progressrinG.IsActive = true;
      }
      private void InstantiateWorkerThread()
      {
          workerThread = new BackgroundWorker();
          workerThread.ProgressChanged += WorkerThread_ProgressChanged;
          workerThread.DoWork += WorkerThread_DoWork;
          workerThread.RunWorkerCompleted += WorkerThread_RunWorkerCompleted;
          workerThread.WorkerReportsProgress = true;
          //workerThread.WorkerSupportsCancellation = true;
      }
  
      private void WorkerThread_ProgressChanged(object sender, ProgressChangedEventArgs e)
      {
  
      }
      private void WorkerThread_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
      {
  
      }
      private void WorkerThread_DoWork(object sender, DoWorkEventArgs e)
      {
          //My huge method,asking 4 database that would update UI too
          //... Textboxes,Grids,Expanders.
      }
  
      private void Button3_Click(object sender, RoutedEventArgs e)
      {
          workerThread.RunWorkerAsync();
  
          while (workerThread.IsBusy)
          {
              progressrinG.Visibility = Visibility.Visible;
          }
      }
  }
  </code></pre>
  
  <p>Even with Invoke,when I press the button,after 5-10 seconds It finishes my method,but my App is frozen while doing it and i dont see the progressring.</p>
  
  <p>Any ideas about what do i do wrong? Or what should i do? Thanks in advance!</p>