C#——await与async实现多线程异步编程
曾经,我们也许用过Thread。在主线程运行的时候。新开还有一个新线程,来运行新方法。
今天看别人发给我的一段代码的时候发现了一个不认识的await,可是又感觉非常熟悉的样子,感觉是线程那块儿的东西,查了下,发现一个简单的方法实现多线程异步编程。
(PS:framework 在4.5以上才干够哦~)
/// <summary>
/// 測试方法
/// </summary>
/// <remarks>创建者:刘慧超; 创建时间:2015-08-24 20:22:14</remarks>
public async static void AsyncPrintHelloWorld()
{
Console.WriteLine("异步方法调用開始");
Console.WriteLine("异步方法:hello world"); //.net framework 4.5及其以上版本号
await Task.Delay(1000); //此处开启新线程来处理,做个測试。。 。
Console.WriteLine("退出异步方法");
}
main调用:
Console.WriteLine("===============异步方法调用===========");
AsyncPrintHelloWorld();
Console.WriteLine("*************如今运行的是主线程的方法**************");
Console.ReadKey();
方法结果:
aaarticlea/png;base64,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" alt="" />
在方法上面加上keywordasync,同一时候,对于方法中要开启新线程的地方。增加awaitkeyword,则此处会另开一个线程去处理,主线程继续,这里的方法运行完给个结果。
挺好玩儿的,不知道哪天就用到了。。
。
。。。
C#——await与async实现多线程异步编程的更多相关文章
- 多线程异步编程示例和实践-Thread和ThreadPool
说到多线程异步编程,总会说起Thread.ThreadPool.Task.TPL这一系列的技术.总结整理了一版编程示例和实践,分享给大家. 先从Thread和ThreadPool说起: 1. 创建并启 ...
- 多线程异步编程示例和实践-Task
上篇博文中,我们介绍了Thread和ThreadPool: 多线程异步编程示例和实践-Thread和ThreadPool 本文中我们继续,说一下TPL(Task Parallel Library, 简 ...
- .Net 多线程 异步编程 Await、Async和Task
await和async简介 await和async是在C#5中引入,并且在.NetFramewor4.5以及.NetCore中进行了支持.主要是解决性能瓶颈,并且增强系统的响应能力. msdn关于 ...
- [.net 多线程]异步编程模式
.NET中的异步编程 - EAP/APM 从.NET 4.5开始,支持的三种异步编程模式: 基于事件的异步编程设计模式 (EAP,Event-based Asynchronous Pattern) 异 ...
- [.NET] 利用 async & await 的异步编程
利用 async & await 的异步编程 [博主]反骨仔 [出处]http://www.cnblogs.com/liqingwen/p/5922573.html 目录 异步编程的简介 异 ...
- .NET4.5新特性async和await修饰符实现异步编程
开篇 每一个版本的.net都会引入一些新的特性,这些特性方便开发人员能够快速实现一些功能.虽然.net版本一直在更新,但是新版本对旧版本的程序都是兼容的,在这一点上微软做的还是非常好的.每次学一个新内 ...
- .NET Web应用中为什么要使用async/await异步编程
前言 什么是async/await? await和async是.NET Framework4.5框架.C#5.0语法里面出现的技术,目的是用于简化异步编程模型. async和await的关系? asy ...
- Atitit. Async await 优缺点 异步编程的原理and实现 java c# php
Atitit. Async await 优缺点 异步编程的原理and实现 java c# php 1. async & await的来源1 2. 异步编程history1 2.1. 线程池 2 ...
- 抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext
长话短说,本文带大家抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext 引言 C#异步编程语法糖async/await,使开发者很容易就能编写异步代码. ...
随机推荐
- charset - 设置 G0/G1 字符集槽中的一个的 ACM
总览 (SYNOPSIS) charset [-v] G0|G1 [cp437|iso01|vt100|user|<acm_name>] 描述 (DESCRIPTION) linux 终端 ...
- Windows命名规则
函数名: ·参照 Windows API 的命名规范. ·推荐使用动宾结构.函数名应清晰反映函数的功能.用途. ·函数名最长不得超过30个字符. ·函数名第一个字母必须大写. ·全局函数必须以小写前缀 ...
- -- HTML标记大全参考手册[推荐]
-- HTML标记大全参考手册[推荐]总类(所有HTML文件都有的) 文件类型 <HTML></HTML> (放在档案的开头与结尾) 文件主题 <TITLE>&l ...
- [LUOGU] P1316 丢瓶盖
题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 输入输出 ...
- Can't connect to MySQL server on '127.0.0.1' (10061) (code 2003)解决方法
- Django 模版语法 二
变量的过滤器(filter)的使用 过滤器:upper, lower, first, capfirst 在 views.py 中修改 from django.shortcuts import rend ...
- 建仓类型与对应建仓价MT4
建仓类型与对应建仓价 (Bid,Ask) 建仓类型 对应建仓价 Buy Ask+Spread Sell Bid-Spread BuyLimit Ask-Spread-StopLevel SellLim ...
- 84-Market Facilitation Index 市场促进指数指标.(2015.7.3)
Market Facilitation Index 市场促进指数指标 MFI指标的计算方式为: MFI=High(最高价)-Low(最低价))/ Volume(成交量) MFI上升,成交量上升,表示价 ...
- 贪心 Radar Installation (求最少探测雷达)
Description Assume the coasting is an infinite straight line. Land is in one side of coasting, sea i ...
- 【ZOJ - 3780】 Paint the Grid Again (拓扑排序)
Leo has a grid with N × N cells. He wants to paint each cell with a specific color (either black or ...