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