添加task.delay任务导致进程代码无法执行

时间:2013-05-26 17:01:32

标签: vb.net list asynchronous task

我正在测试下面的代码,由于某种原因,我从来没有看到输出“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")

1 个答案:

答案 0 :(得分: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)
}