代码如下
public async Task<string> LongTimeTask() {
//从线程池获取一个线程 异步计算
var x =await Task.Run(async ()=> {
// 使用do while + delay 模拟耗时工作
// 具体问题的时候 循环 和 Task.Delay可以去掉
//int count = 0;
//int mili_sec = 100;
//int time_limit = 3000;//miliseconds
//do
//{
// Debug.WriteLine(count);
// count += mili_sec;
// await Task.Delay(mili_sec);
//} while (count< time_limit);
return "finished";
});
return x;
}
Task类将开辟新线程简化,自动管理线程池.
研究者了一下 关于await的博客Dixin's Blog - Understanding C# async / await (2) The Awaitable-Awaiter Pattern (asp.net)
写得很好 但感觉偏向于理论 有点脱离了需求 感觉使用Task的自带功能就已经能够用.