什么是ContinueWith默认值
问题描述:
什么值使用ContinueWith(Action<Task> continuationAction)
为CancellationToken
,TaskContinuationOptions
和TaskScheduler
哪里可以在官方文档中找到它?什么是ContinueWith默认值
答
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
使用。
答
您可以在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