的错误
for (int j = 0; j < 10; j++)
{
for (long i = 0; i < bound / 10; i++)
{
routeLine.Locations.Add(new Location
{
Latitude = ((BingMapsRESTService.Route)(r.ResourceSets[0].Resources[0])).RoutePath.Line.Coordinates[k][0],
Longitude = ((BingMapsRESTService.Route)(r.ResourceSets[0].Resources[0])).RoutePath.Line.Coordinates[k][1]
});
k++;
}
await Task.Delay(TimeSpan.FromMilliseconds(1));
Temp("Drawing Route (" + ((j * 10)/2).ToString() + "%)"); // to show progress,Temp sets text property of a textbox
}
绑定的值介于 6000 到 10000 之间。这个循环需要时间并挂起 UI,这就是为什么我将循环分为 10 个部分并使用 task.delay。是否可以并行运行所有十个循环?我无法使用线程,因为我无法在新线程中创建位置类的对象。它抛出任务被另一个线程封送
是的,这是可能的;您可以使用 TPL 和 Parallel.ForEach
:
三氯甲烷
Parallel.ForEach