private void OnTaskUpdated()
        {
            SuspendLayout();

            try
            {
                var uninstList = _currentTargetStatus.AllUninstallersList;
                // Show the walk away box if there are no running/waiting loud uninstallers and at least one quiet unistaller running/waiting
                if (_walkAwayBox == null &&
                    // There is at least one loud uninstaller
                    uninstList.Any(x => !x.IsSilentPossible) &&
                    // There are no loud uninstallers running or waiting
                    !uninstList.Any(x => !x.IsSilentPossible &&
                                    (x.CurrentStatus == UninstallStatus.Waiting || x.CurrentStatus == UninstallStatus.Uninstalling)) &&
                    // There is at least one silent uninstaller running or waiting
                    uninstList.Any(x => x.IsSilentPossible &&
                                   (x.CurrentStatus == UninstallStatus.Waiting || x.CurrentStatus == UninstallStatus.Uninstalling)))
                {
                    _walkAwayBox = MessageBoxes.CanWalkAwayInfo(this);

                    Enabled = false;
                    _walkAwayBox.FormClosed += (x1, y1) => Enabled = true;
                }

                buttonClose.Enabled = true;

                var progress     = uninstList.Count(x => x.CurrentStatus != UninstallStatus.Waiting);
                var statusString = string.Join("; ",
                                               uninstList.Where(x1 => x1.CurrentStatus == UninstallStatus.Uninstalling)
                                               .Select(x2 => x2.UninstallerEntry.DisplayName)
                                               .ToArray());

                label1.Text = string.Format(CultureInfo.CurrentCulture, "{0} {1}/{2}: {3}",
                                            Localisable.UninstallProgressWindow_Uninstalling, progress, uninstList.Count, statusString);

                buttonClose.Text   = Buttons.ButtonCancel;
                progressBar1.Value = Math.Max(0, progress - 1);
                progressBar1.Style = ProgressBarStyle.Continuous;
            }
            catch
            {
                progressBar1.Style = ProgressBarStyle.Marquee;
            }

            ResumeLayout();
            Refresh();
        }