假设我们现在有一个方法叫DoWork,返回一个bool类型的值
private bool DelayWork(){ Thread.Sleep(5000); return true; }
现在我们要将它改成DoWorkAsync 的异步方法,可以这样改
private async Task<bool> DoWorkAsync(){ var t = await Task.Run(DelayWork); return t; }
如果要用lambda表达式,可以这样写
private async Task<bool> DoWorkAsync(){ bool t = await Task.Run(() => { Thread.Sleep(5000); return true; }); return t; }
在vs里面可以看到,Task.Run方法,命中的是Task.Run<bool>(Func<bool> function)