Skip to content

Progress bar debouncing ignores updates within a single update interval #24728

Open
@MatejKafka

Description

Prerequisites

Steps to reproduce

& {
    [CmdletBinding()]param()

    $pr = [System.Management.Automation.ProgressRecord]::new(0, "activity", "description")

    # write the progress record once, which renders the progress bar and starts the 200 ms debounce timer
    $PSCmdlet.WriteProgress($pr)
    sleep 0.1

    # update progress record state and write it again - this write is ignored, and the progress bar still
    #  shows "description" instead of "new description", even after the 200 ms debounce timer expires
    $pr.StatusDescription = "new description"
    $PSCmdlet.WriteProgress($pr)
    sleep 1
}

Expected behavior

Progress bar briefly flashes with description and then changes to new description. Even if the update is not picked up immediately, I'd expect that the updated progress bar state should be stored and rendered on the next repaint after the debounce timer expires.

Actual behavior

Progress bar is stuck on description and new description never shows.

Environment data

Name                           Value
----                           -----
PSVersion                      7.3.0-preview.2
PSEdition                      Core
GitCommitId                    7.3.0-preview.2
OS                             Microsoft Windows 10.0.19045
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Visuals

No response

Metadata

Assignees

No one assigned

    Labels

    Needs-TriageThe issue is new and needs to be triaged by a work group.WG-Interactive-Consolethe console experienceWG-NeedsReviewNeeds a review by the labeled Working Group

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions