using System;
using System.Net;
using System.Threading;
using System.Threading.Tasks; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine($"Main Start...{System.Threading.Thread.CurrentThread.GetHashCode()}"); var rst = DisplayValueAsync(); Console.WriteLine($"Main do some thing End...{System.Threading.Thread.CurrentThread.GetHashCode()}"); Console.WriteLine($"Sub1 End...values is {rst.Result} {System.Threading.Thread.CurrentThread.GetHashCode()}"); Console.Read(); } public static async Task<int> DisplayValueAsync()
{
Console.WriteLine($"Sub call...{System.Threading.Thread.CurrentThread.GetHashCode()}"); var rst= await Task<int>.Run(()=> { System.Threading.Thread.Sleep(); Console.WriteLine($"Sub exec...{System.Threading.Thread.CurrentThread.GetHashCode()}"); var random = new Random();
return random.Next(,); }); return rst; } } }

https://www.cnblogs.com/yaopengfei/p/9249390.html

执行异步方法的时候有几个注意事项

1.sync与await要成对出现,异步方法只能有3个返回值 (void Task 与 Task<T>)

2.异步方法内要自行通过task.run开辟新的线程出来

3.主线程通过调用异步方法task.Resutl来获取线程结果,此时也会阻塞线程等待结果

最新文章

  1. C#体检套餐项目
  2. vs2016x64&amp;&amp;qt5.7.1编译osg3.4.0&amp;&amp;osgEarth2.7
  3. Git 进阶指南
  4. webstorm 10 出现不能run cordova项目
  5. AngularJS的一点学习笔记
  6. Atomic
  7. HA功能中ZKFC对NN状态的控制
  8. 后台框架--HUI 的学习跟使用1
  9. 理解 Python 中的线程
  10. java中集合类HashSet、ArrayList、LinkedList总结
  11. python2编码问题
  12. (转)手工释放linux内存——/proc/sys/vm/drop_cache
  13. python对象的多重继承
  14. SCRUM 12.23
  15. oo作业总结报告
  16. mysql操作基本命令
  17. JS 计算时间差,(引入外部字体文件)
  18. POJ 3186Treats for the Cows(区间DP)
  19. leetcode difficulty and frequency distribution chart
  20. PHP分页及原理

热门文章

  1. SQL Server中INSERT EXEC语句不能嵌套使用(转载)
  2. XtraReport报表入库单数字转中文大写数字
  3. 【spring】全局异常 globalexception 处理
  4. 教你使用 Swoole-Tracker 秒级定位 PHP 卡死问题
  5. HDFS基本原理
  6. 想入门Web安全,这些基础知识都学会了吗?
  7. 【推荐】全球最全面的Telegram组群频道的集合网站 持续收集中
  8. os模块,sys模块,json和pickle模块,logging模块
  9. 02-MySQL 介绍和安装
  10. 005-OpenStack-网络服务