代码如下
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的自带功能就已经能够用.