public void HandleButton(object sender, EventArgs e)
        {
            var solutionUpdateViewModel       = new SolutionUpdateViewModel();
            var addHeaderToAllProjectsCommand = new AddLicenseHeaderToAllFilesInSolutionCommand(_licenseReplacer, solutionUpdateViewModel);
            var buttonThreadWorker            = new SolutionLevelButtonThreadWorker(addHeaderToAllProjectsCommand);
            var dialog = new SolutionUpdateDialog(solutionUpdateViewModel);


            dialog.Closing     += DialogOnClosing;
            _resharperSuspended = CommandUtility.ExecuteCommandIfExists("ReSharper_Suspend", _dte2);
            Dispatcher uiDispatcher = Dispatcher.CurrentDispatcher;

            buttonThreadWorker.ThreadDone += (o, args) =>
            {
                uiDispatcher.BeginInvoke(new Action(() => { dialog.Close(); }));
                ResumeResharper();
            };

            _solutionUpdateThread = new System.Threading.Thread(buttonThreadWorker.Run)
            {
                IsBackground = true
            };
            _solutionUpdateThread.Start(_dte2.Solution);

            dialog.ShowModal();
        }
    public void HandleButton(object sender, EventArgs e)
    {
      var solutionUpdateViewModel = new SolutionUpdateViewModel();
      var addLicenseHeaderToAllProjectsCommand = new AddLicenseHeaderToAllProjectsCommand (_licenseReplacer, _defaultLicenseHeaderPage, solutionUpdateViewModel);
      var buttonThreadWorker = new SolutionLevelButtonThreadWorker(addLicenseHeaderToAllProjectsCommand);
      var dialog = new SolutionUpdateDialog(solutionUpdateViewModel);


      dialog.Closing += DialogOnClosing;
      _resharperSuspended = CommandUtility.ExecuteCommandIfExists("ReSharper_Suspend", _dte2);
      Dispatcher uiDispatcher = Dispatcher.CurrentDispatcher;

      buttonThreadWorker.ThreadDone += (o, args) =>
      {
        uiDispatcher.BeginInvoke(new Action(() => { dialog.Close(); }));
        ResumeResharper();
      };

      _solutionUpdateThread = new System.Threading.Thread(buttonThreadWorker.Run)
      {
        IsBackground = true
      };
      _solutionUpdateThread.Start(_dte2.Solution);

      dialog.ShowModal(); 
    }