2
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。 是否有可能並行運行所有十個循環?我無法使用線程,因爲我無法在新線程中創建Location類的對象。它會拋出一個任務被另一個線程編組的錯誤Winrt中的並行循環
是什麼'routeLine.Locations'?你確定它是線程安全的「添加」?如果不是,你將不得不同步。坦率地說,我認爲這不會對並行化有用。在後臺構建組合線* *,*確定* - 只需啓動一個任務即可在工作人員上構建循環,然後「等待」任務。但那是不同的。 –