Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# winrt中的并行循环 for(int j=0;j_C#_Windows Runtime_Task Parallel Library_Winrt Async - Fatal编程技术网

C# winrt中的并行循环 for(int j=0;j

C# winrt中的并行循环 for(int j=0;j,c#,windows-runtime,task-parallel-library,winrt-async,C#,Windows Runtime,Task Parallel Library,Winrt Async,绑定的值介于6000到10000之间。这个循环需要时间并挂起UI,这就是为什么我将循环分成10个部分并使用task.delay。 有可能并行运行所有十个循环吗?我不能使用线程,因为我不能在新线程中创建Location类的对象。它抛出一个任务被另一个线程封送的错误是的,这是可能的;您可以使用TPL和并行。ForEach: 是的,这是可能的;您可以使用TPL和并行。ForEach: 什么是路线位置?您确定添加是线程安全的吗?如果没有,则必须同步。坦白地说,我不认为这对并行化有用。在后台构建合成行

绑定的值介于6000到10000之间。这个循环需要时间并挂起UI,这就是为什么我将循环分成10个部分并使用task.delay。
有可能并行运行所有十个循环吗?我不能使用线程,因为我不能在新线程中创建Location类的对象。它抛出一个任务被另一个线程封送的错误

是的,这是可能的;您可以使用TPL和
并行。ForEach


是的,这是可能的;您可以使用TPL和
并行。ForEach


什么是
路线位置
?您确定添加
是线程安全的吗?如果没有,则必须同步。坦白地说,我不认为这对并行化有用。在后台构建合成行,当然-只需启动一个任务,在辅助进程上构建循环,然后“等待”该任务。但那是不同的。
routeLine.Locations
是什么?您确定添加
是线程安全的吗?如果没有,则必须同步。坦白地说,我不认为这对并行化有用。在后台构建合成行,当然-只需启动一个任务,在辅助进程上构建循环,然后“等待”该任务。但这是不同的。
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
}