unable to update progress bar with threading in C#

前端 未结 3 909
一生所求
一生所求 2021-01-23 15:44
    private void button1_Click(object sender, EventArgs e)
    {
        PROGRESS_BAR.Minimum = 0;
        PROGRESS_BAR.Maximum = 100;
        PROGRESS_BAR.Value = 0;

          


        
3条回答
  •  礼貌的吻别
    2021-01-23 15:58

    All of your UI interaction, including callbacks, property sets, and method calls, must be on the same thread.

    One of those callbacks can start another thread (or many threads) but they cannot directly update the UI. The way to handle the updates are through data properties. My processing thread would update a progress status property. This is throne read by the UI thread which has a timer for regular (100ms) updates of the progress bar.

    If you do this, you will need a lock on any objects which are used to communicate e status updates (eg. Strings).

提交回复
热议问题