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