2 using System.Threading.Tasks;
6 static async Task<int> YieldValue (int a)
12 public static async Task<int> BreakTest ()
16 for (int i = 0; i < 8; ++i) {
19 value += await YieldValue (1);
21 Console.WriteLine ("i = " + i);
27 throw new ApplicationException ();
28 } catch (ApplicationException) {
29 Console.WriteLine ("catch");
30 value += await YieldValue (100);
33 Console.WriteLine ("F1");
34 value += await YieldValue (10);
38 Console.WriteLine ("F2");
39 value += await YieldValue (1000);
45 public static async Task<int> ContinueTest ()
49 for (int i = 0; i < 8; ++i) {
52 value += await YieldValue (1);
54 Console.WriteLine ("i = " + i);
60 throw new ApplicationException ();
61 } catch (ApplicationException) {
62 Console.WriteLine ("catch");
63 value += await YieldValue (100);
66 Console.WriteLine ("F1");
67 value += await YieldValue (10);
71 Console.WriteLine ("F2");
72 value += await YieldValue (1000);
78 public static int Main ()
80 if (BreakTest ().Result != 1144)
83 if (ContinueTest ().Result != 1688)