1 using System;
2 using System.Threading.Tasks;
3 using System.Threading;
4 
5 struct Struct
6 {
7 	object m_member;
StructStruct8 	public Struct (object member)
9 	{
10 		m_member = member;
11 	}
12 
AsyncMethodStruct13 	public async Task<bool> AsyncMethod ()
14 	{
15 		bool b = (string)m_member == "1";
16 		await Task.Factory.StartNew (() => -3);
17 		b &= (string)m_member == "1";
18 		return b;
19 	}
20 }
21 
22 class C
23 {
Main()24 	public static int Main ()
25 	{
26 		Struct s = new Struct ("1");
27 		var t = s.AsyncMethod ();
28 		if (!Task.WaitAll (new[] { t }, 2000))
29 			return 1;
30 
31 		if (!t.Result)
32 			return 2;
33 
34 		return 0;
35 	}
36 }
37