private async void Form1_Load(object sender, EventArgs e)
        {
            string x = await Test();
            MessageBox.Show(x);
        }
        async Task<string> Test()
        {
            await Task.Delay(5000);
            return "tese";
        }
Task.Run Func 可以用返回值
new Task(Action) 没有返回值
ContinueWith((task)=>{}); //完成之后在执行
加上 await 会异步等待
task.GetAwaiter().GetResult(); //主线程会挂起等待
await async配合使用
IsCompleted 判断是否已完成 只读
//用Task代替ThreadPool
//Parallel and plinq
  new Action(() =>
              {
    Task1,
           Task2,
           Task3
})();
  var funcList = new List<Func<Task>>()
      {
           Task1,
           Task2,
           Task3
       };
   funcList.ForEach(async _ => await _());
jdd
原文:http://www.cnblogs.com/ZJFeng/p/6623896.html