using System;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
public static async Task Main(string[] args)
{
//异步等待执行结果
//int result = await DoTask();
Task task2 = Task.Run(() =>
{
for (int i = 0; i < 5; ++i)
{
Console.WriteLine("做其它的事");
Thread.Sleep(100);
}
});
Console.WriteLine("全部执行完成 结果:{0}", await DoTask());
await GetValueAsync();
Console.WriteLine("结束");
Console.ReadKey();
}
public static async Task GetValueAsync()
{
Console.WriteLine("GetValueAsync Task start");
await Task.Run(() =>
{
Thread.Sleep(1000);
for (int i = 0; i < 5; ++i)
{
Console.WriteLine("GetValueAsync Task : {0}", i);
}
});
Console.WriteLine("GetValueAsync Task End");
}
private static async Task DoTask()
{
Console.WriteLine("DoTask Task start");
int length = 0;
await Task.Run(() =>
{
for (int i = 0; i < 100; i++)
{
length++;
Console.WriteLine("DoTask Task {0}", length);
Thread.Sleep(10);
}
});
Console.WriteLine("DoTask Task end");
return length;
}
}
}