基本上,它要求一个任务作为参数。那是(任务(的行动吗?
为什么?
我知道我可以通过正常的子继续进行。我永远不记得通过一个需要任务参数的子。
根据定义。在大多数情况下,"继续"应在"先行"任务的结果下运作。如果您忘记了如何称呼"继续使用",Visual Studio" Peek定义"将为您提供帮助。因此,右键单击"继续"并选择"窥视定义",您将检查签名。基本上,它看起来像在下面的摘要中显示。
public Task<TNewResult> ContinueWith<TNewResult>(
Func<Task<TResult>, TNewResult> continuationFunction)
{
StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
return this.ContinueWith<TNewResult>(continuationFunction, TaskScheduler.Current, new CancellationToken(), TaskContinuationOptions.None, ref stackMark);
}
如果它太复杂,则可以使用片段并保存示例,然后在需要时插入。
所以,让我们创建一个例子。
Module Module1
Sub Main()
Dim taskA As Task(Of DayOfWeek) = Task.Run(Function() DateTime.Today.DayOfWeek )
' Execute the continuation when the antecedent finishes.
Dim taskB As Task(Of string) = taskA.ContinueWith(Function (antecedent)
Return $"Today is {antecedent.Result}"
End Function)
taskb.Wait()
Console.WriteLine(taskB.Result)
Console.ReadLine()
End Sub
End Module