Program.cs
37 lines
| 922 B
| text/x-csharp
|
CSharpLexer
/ MonoPlay / Program.cs
cin
|
r93 | using System; | ||
using Implab; | ||||
cin
|
r151 | using System.Threading.Tasks; | ||
cin
|
r93 | |||
namespace MonoPlay { | ||||
class MainClass { | ||||
cin
|
r145 | |||
cin
|
r93 | public static void Main(string[] args) { | ||
cin
|
r94 | if (args == null) | ||
throw new ArgumentNullException("args"); | ||||
cin
|
r103 | var t1 = Environment.TickCount; | ||
cin
|
r93 | |||
cin
|
r151 | DoWork().GetAwaiter().GetResult(); | ||
cin
|
r150 | |||
cin
|
r103 | var t2 = Environment.TickCount; | ||
cin
|
r125 | Console.WriteLine("done: {0} ms, {1:.00} Mb, {2} GC", t2 - t1, GC.GetTotalMemory(false) / (1024*1024), GC.CollectionCount(0) ); | ||
cin
|
r93 | |||
} | ||||
cin
|
r136 | |||
cin
|
r151 | static IPromise<int> DoItem(int x) { | ||
cin
|
r156 | //return Promise<int>.FromResult(x + 1); | ||
var p = new Promise<int>(); | ||||
p.Resolve(x+1); | ||||
return p; | ||||
cin
|
r151 | } | ||
cin
|
r150 | |||
cin
|
r151 | static async Task<int> DoWork() { | ||
var c = 0; | ||||
for (int i = 0; i < 10000000; i++) | ||||
c = await DoItem(c); | ||||
return c; | ||||
cin
|
r145 | } | ||
cin
|
r136 | |||
cin
|
r93 | } | ||
} | ||||