【发布时间】:2014-06-16 22:44:21
【问题描述】:
我有一些 VB.net 代码,如下所示:
If (condition1) Then
Dim Task1 = function1Async()
Dim Task2 = function2Async()
Await Task.WhenAll(Task1, Task2)
Else
Dim Task1 = function1Async()
Dim Task3 = function3Async()
Await Task.WhenAll(Task1, Task3)
End If
但我更喜欢这样做:
Dim Task1 = function1Async()
Dim Task2 = New Task()
Dim Task3 = New Task()
If (condition1) Then
Task2 = function2Async()
Else
Task3 = function3Async()
End If
Await Task.WhenAll(Task1, Task2, Task3)
但是,“New Task()”不会产生等待任务。 是否有某种 minimal awaitable 任务可以创建为占位符,以防以后没有创建 real 任务?
【问题讨论】:
-
嗯,你可以有一个任务指向一个什么都不做的子,但你真正应该做的是建立一个列表真正的要执行的任务。
-
我的真实代码更复杂,最后只有一个 Await 语句更易于维护。
标签: .net vb.net task async-await