1 // Compiler options: -langversion:future
3 using System.Threading.Tasks;
4 using System.Threading;
8 async Task<int> Lambda_1 ()
13 Func<int> f = () => a;
14 res = await Task.Factory.StartNew (f).ConfigureAwait (false);
21 async Task<int> Lambda_2 ()
26 Func<int> f = () => a + res;
27 res = await Task.Factory.StartNew (f).ConfigureAwait (false);
34 async Task<int> Lambda_3<T> ()
39 Func<int> f = () => a;
40 res = await Task.Factory.StartNew (f).ConfigureAwait (false);
47 public static int Main ()
49 var t = new Tester ().Lambda_1 ();
50 if (!Task.WaitAll (new [] { t }, 1000))
56 t = new Tester ().Lambda_2 ();
57 if (!Task.WaitAll (new [] { t }, 1000))
63 t = new Tester ().Lambda_3<ulong>();
64 if (!Task.WaitAll (new [] { t }, 1000))
70 Console.WriteLine ("ok");