private void Button_UpdateQueues_Click(object sender, RoutedEventArgs e) { this.Button_UpdateQueues.IsEnabled = false; BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += delegate(object s, DoWorkEventArgs args) { StatusReporter reporter = new StatusReporter(); reporter.updateQueues(); }; worker.RunWorkerAsync(); this.Button_UpdateQueues.IsEnabled = true; }