2013-05-26 33 views
0

我正在測試下面的代碼,出於某種原因,我永遠不會看到「test2」輸出。有人知道爲什麼 它應該做的是以延遲形式運行一組任務,然後輸出test2,但這不會發生。添加導致前進代碼不執行的task.delay任務

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") 
+0

剛剛添加,我試圖按照這個頁面底部的例子http://blogs.msdn.com/b/pfxteam/archive/2012/08/02 /processing-tasks-as-they-complete.aspx – user984314

回答

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) 
} 
+0

如果我想要返回整數tho的任務,我該怎麼做? – user984314

+0

@ user984314您沒有「Task(Of Integer)」列表。 ContinueWith返回一個任務,以便您有一個任務列表。 – nmat

相關問題