[w32file] Move MonoIO.Find{First,Next,Close} to managed
[mono.git] / mcs / tests / test-async-04.cs
1 using System;
2 using System.Threading.Tasks;
3 using System.Threading;
4
5 class C
6 {
7         ManualResetEvent mre = new ManualResetEvent (false);
8         ManualResetEvent mre_task = new ManualResetEvent (false);
9
10         public async Task<int> TestTaskGeneric ()
11         {
12                 await Task.Factory.StartNew (() => {
13                         mre_task.Set ();
14                         mre.WaitOne (3000);
15                         return 5;
16                 }).ConfigureAwait (false);;
17
18                 return 1;
19         }
20
21         public static int Main ()
22         {
23                 var c = new C ();
24                 
25                 var t2 = c.TestTaskGeneric ();
26                 if (t2.Status != TaskStatus.WaitingForActivation)
27                         return 1;
28                 
29                 c.mre_task.WaitOne (3000);
30                 c.mre.Set ();
31                 
32                 if (!Task.WaitAll (new[] { t2 }, 3000))
33                         return 2;
34
35                 if (t2.Result != 1)
36                         return 3;
37
38                 if (t2.Status != TaskStatus.RanToCompletion)
39                         return 4;
40
41                 return 0;
42         }
43 }