Mercurial > pub > ImplabNet
comparison MonoPlay/Program.cs @ 151:ec91a6dfa5b3 v2
Added support for 'await' operator to promises
| author | cin |
|---|---|
| date | Thu, 04 Feb 2016 02:43:05 +0300 |
| parents | 3258399cba83 |
| children | 97fbbf816844 |
comparison
equal
deleted
inserted
replaced
| 150:3258399cba83 | 151:ec91a6dfa5b3 |
|---|---|
| 5 using System.Collections.Generic; | 5 using System.Collections.Generic; |
| 6 using System.Collections.Concurrent; | 6 using System.Collections.Concurrent; |
| 7 using System.Threading; | 7 using System.Threading; |
| 8 using Implab.JSON; | 8 using Implab.JSON; |
| 9 using System.IO; | 9 using System.IO; |
| 10 using System.Threading.Tasks; | |
| 10 | 11 |
| 11 namespace MonoPlay { | 12 namespace MonoPlay { |
| 12 class MainClass { | 13 class MainClass { |
| 13 | 14 |
| 14 | 15 |
| 16 if (args == null) | 17 if (args == null) |
| 17 throw new ArgumentNullException("args"); | 18 throw new ArgumentNullException("args"); |
| 18 | 19 |
| 19 var t1 = Environment.TickCount; | 20 var t1 = Environment.TickCount; |
| 20 | 21 |
| 21 for(int i =0; i < 1000000; i++) | 22 DoWork().GetAwaiter().GetResult(); |
| 22 using (var tw = new StringWriter()) { | |
| 23 var jw = new JSONWriter(tw); | |
| 24 | |
| 25 jw.WriteValue("\r\nhere\tvalue\u0002\u0003"); | |
| 26 | |
| 27 //Console.WriteLine(tw); | |
| 28 } | |
| 29 | |
| 30 | |
| 31 | 23 |
| 32 var t2 = Environment.TickCount; | 24 var t2 = Environment.TickCount; |
| 33 Console.WriteLine("done: {0} ms, {1:.00} Mb, {2} GC", t2 - t1, GC.GetTotalMemory(false) / (1024*1024), GC.CollectionCount(0) ); | 25 Console.WriteLine("done: {0} ms, {1:.00} Mb, {2} GC", t2 - t1, GC.GetTotalMemory(false) / (1024*1024), GC.CollectionCount(0) ); |
| 34 | 26 |
| 35 } | 27 } |
| 36 | 28 |
| 37 static void DoTest() { | 29 static IPromise<int> DoItem(int x) { |
| 30 return Promise<int>.FromResult(x + 1); | |
| 31 } | |
| 38 | 32 |
| 39 | 33 static async Task<int> DoWork() { |
| 40 | 34 var c = 0; |
| 35 for (int i = 0; i < 10000000; i++) | |
| 36 c = await DoItem(c); | |
| 37 return c; | |
| 41 } | 38 } |
| 42 | 39 |
| 43 } | 40 } |
| 44 } | 41 } |
