有这么个异步方法

 private static async Task<int> Compute(int s)
{
return await Task<int>.Run(() =>
{
if (s < 5)
return s * 2;
else
return s * 3;
}); }

当然实际过程是从数据库获取或者从网络上获取什么内容。

现在我想调用:

    private static void Main(string[] args)
{
List<int> s = new List<int> { 1, 2, 3, 4, 5 };
List<int> t = new List<int>();
s.ForEach(ii =>
{
int ret = await Compute(ii);
t.Add(ret);
}); t.ForEach(ii => Console.WriteLine(ii));
}

发现 vs 划了一条下划线

OK,await 必须 async的,简单,改一下

    private static void Main(string[] args)
{
List<int> s = new List<int> { 1, 2, 3, 4, 5 };
List<int> t = new List<int>();
s.ForEach(async ii =>
{
int ret = await Compute(ii);
t.Add(ret);
}); t.ForEach(ii => Console.WriteLine(ii));
}

然后,Ctrl+F5运行,报错了!

错误在

        t.ForEach(ii => Console.WriteLine(ii));

原因在:Foreach 调用了一个 async void 的Action,没有await(也没法await,并且await 没返回值的也要设成Task,没法设)

老老实实改成 foreach(var ii in s)。

最新文章

  1. windows命令——taskkill
  2. SCALA XML pattern attrbute(属性)
  3. JQ对象到底是什么
  4. 解决Ubuntu Server 12.04 在Hyper-v 2012 R2中不能使用动态内存的问题
  5. Android Studio构建系统基础
  6. Debug阶段成员贡献分
  7. javascript解析引擎(每天有学习一点篇)
  8. 移植UE4的模型操作到Unity中
  9. 40. 特殊a串数列求和
  10. 树莓派最简易Wifi配置
  11. Visual Studio 扩展包(.vsix)制作
  12. SQL UNION 和 UNION ALL 操作符
  13. neu1458 方格取数 dp解法
  14. What is WCF
  15. 系统预定义委托与Lambda表达式
  16. Windows 下让 Python 多个版本共存(支持 pip)
  17. HTML5中表单中新增加元素
  18. 动态的加载显示oracle警告日志文件内容
  19. 关于在虚拟机上安装ubuntu输入不了中文的问题
  20. vue手把手教你实现走马灯商品左右轮播图

热门文章

  1. Java NIO 系列学习(一)Java NIO概述
  2. 哆啦A梦css
  3. 深入理解Java虚拟机(第二版)中《长期存活对象将进入老年代》的实践
  4. Windows 7环境下网站性能测试小工具 Apache Bench 和 Webbench使用和下载
  5. vbuffer.hpp
  6. 3D视图的2D展示
  7. NullReferenceException 的可恨之处
  8. django自定义模板标签
  9. jmeter的几种参数化方式
  10. Forth 编译程序