WP7 Toolkit PerformanceProgresBar和UI线程(丢点效果)

本文关键字:线程 Toolkit PerformanceProgresBar UI WP7 | 更新日期: 2023-09-27 18:00:35

我很难从WP Toolkit管理ProgressBar。在我的项目中,我有一个用数据绑定项填充的列表框。总体过程如下:

  1. 显示进度条(可见性更改为可见,IsIndeterminate更改为true)
  2. 提出休息请求
  3. 得到响应
  4. 解析项目的集合
  5. 将存储器中的项目绑定到列表
  6. 隐藏进度条(可见性为折叠,IsIndeterminate为false)

我现在的问题是:Indeterminate标志似乎变化太快(我认为是不同的线程?)。这导致进度条有时只显示一个矩形。如何确保只有在数据绑定和列表框刷新完成后进度条才会消失?

这是我的回复回调:

private void DataLoaded(object o, RestResponseEventArgs e)
{   
  int i = 0;
  List<Entry> entries = new List<Entry>();
  foreach (JObject current in e.JsonObject["entries"].Children())
  {
     Entry e = Entry.Parse(current);
     entries.Add(e);
  }
  this.MyListBox.ItemsSource = entries;
  this.ProgressBar.Visibility = Visibility.Collapsed;
  this.ProgressBar.IsIndeterminate = false;
}

WP7 Toolkit PerformanceProgresBar和UI线程(丢点效果)

使用Dispatcher。BeginInvoke()方法:

    private void DataLoaded(object o, RestResponseEventArgs e)
    { 
      Dispatcher.BeginInvoke(() =>
      {
       int i = 0;
       List<Entry> entries = new List<Entry>();
       foreach (JObject current in e.JsonObject["entries"].Children())
       {
         Entry e = Entry.Parse(current);
         entries.Add(e);
       }
       this.MyListBox.ItemsSource = entries;
       this.ProgressBar.Visibility = Visibility.Collapsed;
   this.ProgressBar.IsIndeterminate = false;
  });    
}