async 和 await 的用法示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading; namespace ConsoleApp2
{
class Program
{
static void Main()
{
Console.WriteLine("Without async,the spend time is ");
StopWatchTool(GetClientInformationWithoutAsync);
Console.WriteLine("With async,the spend time is ");
StopWatchTool(GetClientInformationWithAsync);
Console.Read();
}
private static void StopWatchTool(Action action)
{
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();
action();
stopwatch.Stop();
Console.WriteLine(stopwatch.Elapsed);
}
private static void GetClientInformationWithoutAsync()
{
var location = Client.GetLocation();
var weather = Client.GetWeather();
Console.WriteLine(location + " " + weather);
}
private async static void GetClientInformationWithAsync()
{
var location2 = Client.GetLocationTaskAsync();
var weather2 = Client.GetWeatherTaskAsync();
await Task.WhenAll(location2, weather2);
Console.WriteLine(location2.Result + " " + weather2.Result);
} }
class Client
{
public static String GetWeather()
{
Thread.Sleep(1000);
return "Sunny";
}
public static Task<String> GetWeatherTaskAsync()
{
var a = new Task<string>(GetWeather);
a.Start();
return a;
}
public static String GetLocation()
{
Thread.Sleep(2000);
return "Pukou";
}
public static Task<String> GetLocationTaskAsync()
{
var a= new Task<string>(GetLocation);
a.Start();
return a;
} }
}
async 和 await 的用法示例的更多相关文章
- C# 中的Async 和 Await 的用法详解
众所周知C#提供Async和Await关键字来实现异步编程.在本文中,我们将共同探讨并介绍什么是Async 和 Await,以及如何在C#中使用Async 和 Await. 同样本文的内容也大多是翻译 ...
- C#多线程编程(2)-- async,await基本用法
上一章我简单介绍了异步编程的基本方法,推荐使用的方式是Task.Task是对线程池的封装,并且可以对Task使用async和await关键字.这两个关键字的使用非常简单,那么这两个关键字究竟起什么作用 ...
- async和await的用法
function fn(){ return "aa"; } console.log(fn())// 如果直接写个函数return一个值,那么打印的肯定就是aa async func ...
- Promise以及async和await的用法
Promise是一个异步加载的方式,处理时使用new Promise返回一个对象,该对象可以调用then方法,then方法中有两个参数,第一个参数是加载成功时执行,第二个参数是加载失败时执行,then ...
- vue中异步函数async和await的用法
整理的不错,收藏一下 http://blog.sina.com.cn/s/blog_13d06fc1f0102wzfr.html
- Thread、ThreadPool、Task、Parallel、Async和Await基本用法、区别以及弊端
多线程的操作在程序中也是比较常见的,比如开启一个线程执行一些比较耗时的操作(IO操作),而主线程继续执行当前操作,不会造成主线程阻塞.线程又分为前台线程和后台线程,区别是:整个程序必须要运行完前台线程 ...
- async和await用法
原文:async和await用法 要理解async和await的用法,首先要了解Task相关知识,这里不做说明,因为这不是本文的重点. 如果你已经对Task很了解,那么如何使用async和await, ...
- async和await用法(Task)
原文:async和await用法 要理解async和await的用法,首先要了解Task相关知识,这里不做说明,因为这不是本文的重点. 如果你已经对Task很了解,那么如何使用async和await, ...
- async和await浅析
要理解async和await的用法,首先要了解Task相关知识,这里不做说明,因为这不是本文的重点. 如果你已经对Task很了解,那么如何使用async和await,在此主要总结了以下三点: 只有在a ...
随机推荐
- winform :DataGridView添加一列checkbox
#region 添加checkbox列 public void AddCheckBox() { DataGridViewCheckBoxColumn columncb = new D ...
- 通过sys.objects查询SQL SERVER数据库改动内容
适用于: SQL Server 2008 + .Azure SQL 数据库.Azure SQL 数据仓库.并行数据仓库 系统视图sys.objects,在数据库中用户定义(创建)的每个架构范围对象(例 ...
- item style edit in sharepoint 2013
标题头添加属性:(如果需要使用ddwrt)xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime&quo ...
- JavaScript学习知识点归纳
JavaScript学习包括几大方面: 1.基础语法 2.JavaScript核心对象 3.DOM操作 4.BOM操作 5.正则表达式 6.AJAX 7.面向对象编程 以下依次为各版块相关内容==&g ...
- Mac OS 10.12 - 安装Homebrew,像Ubuntu里面的apt一样简单地安装和删除软件!
Homebrew — macOS 不可或缺的套件管理器,Homebrew官方网站如此介绍自己!!! 中文官网:https://brew.sh/index_zh-cn.html 一,安装 打开shell ...
- 【文文殿下】浅析scanf源码
本文仅做理性上的愉悦,无实际用途. scanf实际的调用 我们直接使用的scanf其实是这样写的 int __cdecl scanf ( const char *format, ... ) { va_ ...
- poj2506 Tiling
http://poj.org/problem?id=2506 题目大意:用多少种方法可以用2*1或2*2瓦片来铺一个2*n的矩形? 这是一个2*17长方形的样品. 输入是一行行的序列,每一行包含一个整 ...
- 微信小程序redirect 到tab不刷新
// 更新2018/11/20:现在小程序的页面栈长度为10 更正 2018/11/20: 经过一段时间的实践,我发现以前方法存在很多问题,比如 getCurrentPages 方法并不在官方的 AP ...
- XorPay.com 支付平台介绍【免费申请个人微信支付接口】
XorPay 支付平台介绍 XorPay 定位为个人 / 独立开发者 / 个体户 / 小微企业提供安全.简单.稳定.正规的收款服务.目前支持微信 NATIVE / JSAPI / 收银台 / 小程序 ...
- 如何正确的加载和执行 JavaScript 代码
无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载和执行 ...