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)