foreach (MapLocation loc in e.Result)
{
testDict[loc.ElemId] = loc.ToString();
this.Dispatcher.BeginInvoke(delegate()
{
Image icon = new Image();
icon.SetValue(Image.SourceProperty, nurseIconSource);
Canvas.SetLeft(icon, (double)loc.X * MAP_SCALE);
Canvas.SetTop(icon, MAP_HEIGHT - (double)loc.Y * MAP_SCALE);
icons[loc.ElemId] = icon;
MainCanvas.Children.Add(icon);
});
}
}
这个环路上运行一个线程的25倍,从UI线程分开。 testDict对象在执行该方法后最终有25个条目,而图标字典仅存储第25个(最后一个)条目的条目。
这是我第一次使用Dispatcher。这是不是要被称为快速这样的?我所能想到的是,第一次调用委托是在循环的最后一次之后,所以loc对象始终是同一个项目。这是否准确?
2011-01-19
Erix