1 // Compiler options: -langversion:future
4 using System.Threading.Tasks;
5 using System.Threading;
9 ManualResetEvent mre = new ManualResetEvent (false);
11 public async Task TestTask ()
13 await Call ().ConfigureAwait (false);
16 public async Task TestTask2 ()
18 await Call ().ConfigureAwait (false);
24 return Task.Factory.StartNew (() => {
26 Console.WriteLine ("a");
30 public async Task<int> TestTaskGeneric ()
32 return await CallGeneric ().ConfigureAwait (false);
35 Task<int> CallGeneric ()
37 return Task.Factory.StartNew (() => {
43 public static int Main ()
46 var t = c.TestTask ();
47 if (t.Status != TaskStatus.WaitingForActivation)
51 if (!Task.WaitAll (new[] { t }, 3000))
54 if (t.Status != TaskStatus.RanToCompletion)
59 if (t.Status != TaskStatus.WaitingForActivation)
63 if (!Task.WaitAll (new[] { t }, 3000))
66 if (t.Status != TaskStatus.RanToCompletion)
70 var t2 = c.TestTaskGeneric ();
71 if (t2.Status != TaskStatus.WaitingForActivation)
75 if (!Task.WaitAll (new[] { t2 }, 3000))
81 if (t2.Status != TaskStatus.RanToCompletion)