??????????????????ò????????????????????????÷????в????????async?? await?????????????????????????????????ζ???async??await???????C#5.0??????????????????б???????????????????漰????????????????????????????async??await????????????
?????????????????????????Thread??????????汾Task????
????1??Task??????????????Task??????.Net Framework 4.0??????????????????????????????????????Task??????????Thread?????????????????????????????????????????????????????????????Thread???????????????????з???????????С?Task?????????????
static void Main(string[] args)
{
Console.WriteLine("???GetReturnResult??????????" + DateTime.Now.ToString("yyyy-MM-dd hh:MM:ss"));
var strRes = Task.Run<string>(() => { return GetReturnResult(); });
//???Task??з???
Console.WriteLine("???GetReturnResult??????????" + DateTime.Now.ToString("yyyy-MM-dd hh:MM:ss"));
Console.WriteLine(strRes.Result);
//?????????????
Console.WriteLine("????????????" + DateTime.Now.ToString("yyyy-MM-dd hh:MM:ss"));
Console.ReadLine();
}
static string GetReturnResult()
{
Thread.Sleep(2000);
return "????????";
}
???????????????

????????????????????var strRes = Task.Run<string>(() => { return GetReturnResult(); })???????????????????????GetReturnResult()???????????????????????????GetReturnResult()????????????strRes.Result??????????????????GetReturnResult()?????????????????????????????????????????ID?????????????
staticvoidMain(string[]args)
{
Console.WriteLine("???GetReturnResult??????????"+DateTime.Now.ToString("yyyy-MM-ddhh:MM:ss"));
varstrRes=Task.Run<string>(()=>{returnGetReturnResult();});
Console.WriteLine("???GetReturnResult??????????"+DateTime.Now.ToString("yyyy-MM-ddhh:MM:ss"));
Console.WriteLine("?????????????ID??"+Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(strRes.Result);
Console.WriteLine("????????????"+DateTime.Now.ToString("yyyy-MM-ddhh:MM:ss"));
Console.ReadLine();
}
staticstringGetReturnResult()
{
Console.WriteLine("????GetReturnResult????????????ID??"+Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(2000);
return"????????";
}
?????????

??????????????Task.Run<string>(()=>{}).Reslut???????????????????????????????????????????????ɡ?
????Task??????÷????£?
//?÷??
Task task1 = new Task(new Action(MyAction));
//?÷???
Task task2 = new Task(delegate
{
MyAction();
});
//?÷???
Task task3 = new Task(() => MyAction());
Task task4 = new Task(() =>
{
MyAction();
});
task1.Start();
task2.Start();
task3.Start();
task4.Start();
????????????Task??????????????????????У?????????Action???????У???????Action??16????????????????????ó?????????Task???????????????????ɡ?