0

我正在测试下面的代码,由于某种原因,我从来没有看到“test2”输出。有谁知道为什么?它应该做的是以延迟形式运行一组任务,然后应该输出 test2,但这并没有发生。

    Console.WriteLine("test1")
    Dim tasks As IEnumerable(Of Task(Of Integer)) = {Task.Delay(3000).ContinueWith(Function() 3), Task.Delay(1000).ContinueWith(Function() 1), Task.Delay(2000).ContinueWith(Function() 2), Task.Delay(5000).ContinueWith(Function() 5), Task.Delay(4000).ContinueWith(Function() 4)}
    Console.WriteLine("test2")
4

1 回答 1

0

Task(Of Integer)抛出一个无效的强制转换异常。你可以简单地写这个:

Dim tasks As IEnumerable(Of Task) = {
    Task.Delay(3000).ContinueWith(Function() 3),
    Task.Delay(1000).ContinueWith(Function() 1),
    Task.Delay(2000).ContinueWith(Function() 2),
    Task.Delay(5000).ContinueWith(Function() 5),
    Task.Delay(4000).ContinueWith(Function() 4)
}
于 2013-05-26T17:11:20.957 回答