什么是ContinueWith默认值

时间:2015-06-11 09:46:40

标签: c# .net multithreading task-parallel-library task

ContinueWith(Action<Task> continuationAction)CancellationTokenTaskContinuationOptions使用TaskScheduler的值是什么?我在哪里可以找到官方文档?

2 个答案:

答案 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