对ContinueWith(Action<Task> continuationAction)
,CancellationToken
和TaskContinuationOptions
使用TaskScheduler
的值是什么?我在哪里可以找到官方文档?
答案 0 :(得分: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 :(得分:1)
您可以在http://referencesource.microsoft.com/上查看.Net的大部分实际源代码。在您的情况下,确切的重载(ContinueWith(Action<Task> continuationAction)
)如下所示:
PopupWindow
因此,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