2015-06-11 211 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