2015-06-11 174 views
3

什么值使用ContinueWith(Action<Task> continuationAction)CancellationToken,TaskContinuationOptionsTaskScheduler哪里可以在官方文档中找到它?什么是ContinueWith默认值

回答

6

MSDN没有明确说明这一点,但通常当你有方法重载,所有其他参数是“默认”。让我们来看看这个方法在.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使用。

1

您可以在http://referencesource.microsoft.com/上查看.Net的大部分实际源代码。你的情况的确切过载(ContinueWith(Action<Task> continuationAction))看起来是这样的:

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
对于TaskContinuationOptions这是TaskContinuationOptions.None
对于TaskScheduler这是TaskScheduler.Current