ContinueWith 默认值是什么

What are the ContinueWith default values

ContinueWith(Action<Task> continuationAction) 用于 CancellationTokenTaskContinuationOptionsTaskScheduler 的值是什么?我可以在官方文档中的何处找到它?

MSDN 没有明确说明这一点,但通常当您有方法重载时,所有其他参数都是 "default"。让我们在.NET source:

中找到这个方法
public Task ContinueWith(Action<Task, Object> continuationAction)
{
    StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
    return ContinueWith(continuationAction, TaskScheduler.Current, default(CancellationToken), TaskContinuationOptions.None, ref stackMark);
}

所以使用默认CancellationToken(即CancellationToken.None),空TaskContinuationOptions和当前TaskScheduler

您可以在 http://referencesource.microsoft.com/. In your case the exact overload (ContinueWith(Action<Task> continuationAction)) 上查看 .Net 的大部分实际源代码,如下所示:

public Task ContinueWith(Action<Task> continuationAction)
{
    StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
    return ContinueWith(continuationAction, TaskScheduler.Current, default(CancellationToken), TaskContinuationOptions.None, ref stackMark);
}

因此,对于 CancellationToken,它是 default(CancellationToken),相当于 CancellationToken.None
TaskContinuationOptionsTaskContinuationOptions.None.
TaskSchedulerTaskScheduler.Current