相关疑难解决方法(0)

委托中Task.Delay之后的代码未执行

我正在尝试同时处理列表的分区。对于列表中每个分区中的每个整数,我正在尝试等待该时间。

public class Program
{
    public async static void Main()
    {
        Console.WriteLine("Starting.");
        var values = Enumerable.Range(0,1000).ToList();

        await Task.WhenAll(
            from partition in Partitioner.Create(values).GetPartitions(10)
            select Task.Run(async delegate {
                Console.WriteLine("Entered");
                using (partition)
                    while (partition.MoveNext()){               
                        var delay = partition.Current;
                        await Task.Delay(delay);
                        Console.WriteLine(string.Format("Waited {0} milliseconds",delay));

                    }
            }));
        Console.WriteLine("Done");
    }
}
Run Code Online (Sandbox Code Playgroud)

在Task.Delay(delay)之后执行似乎停止:

Starting.
Entered
Entered
Waited 0 milliseconds
Entered
Entered
Entered
Entered
Entered
Entered
Entered
Entered
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await

1
推荐指数
1
解决办法
56
查看次数

标签 统计

async-await ×1

asynchronous ×1

c# ×1