using System;
using System.Text ;
using System.Threading ;
using System.Threading .Tasks ;
namespace ConsoleApp1
{
class Program
{
static void Main( string[ ] args)
{
new Program( ) .boot ( args) ;
Console.WriteLine ( "(5)Sleep begin" ) ;
Thread.Sleep ( 10 * 200 ) ;
Console.WriteLine ( "(6)Sleep end" ) ;
}
public async void boot( string[ ] args)
{
Console.WriteLine ( "(1)boot begin" ) ;
await TestFuncAsync( ) ;
Console.WriteLine ( "(4)boot end" ) ;
}
public async Task TestFuncAsync( )
{
Console.WriteLine ( "(2)TestFuncAsync begin" ) ;
await Task.Run ( ( ) =>
{
StringBuilder sb = new StringBuilder( ) ;
for ( int i = 0 ; i < 100 ; i++ )
{
sb.Append ( 'a' ) ;
Thread.Sleep ( 10 ) ;
}
Console.WriteLine ( sb) ;
} ) ;
Console.WriteLine ( "(3)TestFuncAsync end" ) ;
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dDsKdXNpbmcgU3lzdGVtLlRocmVhZGluZzsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKCm5hbWVzcGFjZSBDb25zb2xlQXBwMQp7CiAgICBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgbmV3IFByb2dyYW0oKS5ib290KGFyZ3MpOwoKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIig1KVNsZWVwIGJlZ2luIik7CiAgICAgICAgICAgIFRocmVhZC5TbGVlcCgxMCAqIDIwMCk7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCIoNilTbGVlcCBlbmQiKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBhc3luYyB2b2lkIGJvb3Qoc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCIoMSlib290IGJlZ2luIik7CgogICAgICAgICAgICBhd2FpdCBUZXN0RnVuY0FzeW5jKCk7CgogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiKDQpYm9vdCBlbmQiKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBhc3luYyBUYXNrIFRlc3RGdW5jQXN5bmMoKQogICAgICAgIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIigyKVRlc3RGdW5jQXN5bmMgYmVnaW4iKTsKCiAgICAgICAgICAgIGF3YWl0IFRhc2suUnVuKCgpID0+CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOwoKICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwOyBpKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgc2IuQXBwZW5kKCdhJyk7CiAgICAgICAgICAgICAgICAgICAgVGhyZWFkLlNsZWVwKDEwKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShzYik7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIigzKVRlc3RGdW5jQXN5bmMgZW5kIik7CiAgICAgICAgfQogICAgfQp9Cg==