Merge pull request #4998 from kumpera/fix_56684
[mono.git] / mcs / tests / test-async-26.cs
1 using System;
2 using System.Threading;
3 using System.Threading.Tasks;
4
5 namespace ConsoleApplication1
6 {
7         class Program
8         {
9                 public static Task<TResult> Run<TResult> (Func<Task<TResult>> function)
10                 {
11                         var t = Task<Task<TResult>>.Factory.StartNew (function);
12                         return GetTaskResult (t);
13                 }
14
15                 async static Task<TResult> GetTaskResult<TResult> (Task<Task<TResult>> task)
16                 {
17                         return await task.Result;
18                 }
19
20                 public static int Main ()
21                 {
22                         var t2 = Run (() => Task<int>.Factory.StartNew (() => 5));
23
24                         if (!t2.Wait (1000)) {
25                                 Console.WriteLine (t2.Status);
26                                 return 1;
27                         }
28                         
29                         Console.WriteLine ("ok");
30                         return 0;
31                 }
32         }
33 }