1 //--------------------------------------------------------------------------
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // File: CompletedTask.cs
7 //--------------------------------------------------------------------------
9 namespace System.Threading.Tasks
11 /// <summary>Provides access to an already completed task.</summary>
12 /// <remarks>A completed task can be useful for using ContinueWith overloads where there aren't StartNew equivalents.</remarks>
13 public static class CompletedTask
15 /// <summary>Gets a completed Task.</summary>
16 public readonly static Task Default = CompletedTask<object>.Default;
19 /// <summary>Provides access to an already completed task.</summary>
20 /// <remarks>A completed task can be useful for using ContinueWith overloads where there aren't StartNew equivalents.</remarks>
21 public static class CompletedTask<TResult>
23 /// <summary>Initializes a Task.</summary>
24 static CompletedTask()
26 var tcs = new TaskCompletionSource<TResult>();
27 tcs.TrySetResult(default(TResult));
31 /// <summary>Gets a completed Task.</summary>
32 public readonly static Task<TResult> Default;