01:Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 02: Dim tasks As New List(Of Task)() 03: For ctr As Integer = 1 To 10 04: Dim baseValue As Integer = ctr 05: tasks.Add(Task.Factory.StartNew( 06: Sub(b) 07: Dim i As Integer = CInt(b) 08: Console.Write("{0} ", i) 09: End Sub, baseValue)) 10: Next 11: Dim continuation = Task.WhenAll(tasks) 12: Console.WriteLine(" End") 13:End Sub
■No34695に返信(Hongliangさんの記事) Hongliangさん 本当に、多くの時間を割き、丁寧なご回答ありがとうございます。ご指導頂いたことにより、次のような整理ができました。 @ 仰る通りに出力ウィンドウに表示しています。改行がないと出力されないことを知りませんでした。 A WhenAllがUIスレッドを止めるもの(WaitAllと勘違い)と捉えていました。 B 今回の例では、UIスレッドを止めても問題が無かったので、awaitを使うことは考えていませんでしたが、ご指導を頂いて、awaitを使うだけで全てが解決しました。 C キーバッファとバッファを混同して考えていました。 D 今回教えて頂いたことにより、WhenAll,WhenAny,WaitAll,WaitAny,awaitなどについての概念が整理できました。 今回感じたことは、園庭で、多くの幼稚園児が自由に遊んでいるのを監視するような気持で、対応する必要があるなぁ?って思いました。まだまだ、習得の道は長いと思いますが、このように上級者から丁寧な指導を得られることを幸せに感じ頑張ります。 また、近いうちに、初歩的な質問をすると思いますが、宜しくお願い致します。 有難うございました。