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,使开发者很容易就能编写异步代码. ...
随机推荐
- (转)淘淘商城系列——发布dubbo服务
http://blog.csdn.net/yerenyuan_pku/article/details/72758639 Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入, ...
- 谈谈如何来查看GC日志
一.首先来看一下JVM中的GC有哪几种类型? 1.-XX:UseSerialGC 虚拟机运行在Client模式的默认值,打开此开关参数后,使用Serial+Serial Old收集器组合进行垃圾收集. ...
- Web应用启动时,后台自动启动一个线程
(1)前言 前几天,manager问道一个问题:能不能实现类似于cron的后台管理方式.问题解决后,想对这几个问题进行一下简单的总结.以便抛砖引玉!首先简单的提及一下cron. Cron,计划任务,是 ...
- Windows文件自删除的两种方法
可执行模块的自删除技术已经被讨论的很多, 有很多极富创意的思路和想法被提出, 但有些似是而非的方案往往使人误入歧途. 举个例子来说, 很多文章认为下面的一小段代码可以实现自删除:void main(v ...
- source collection list
1.Anaconda:http://www.cnblogs.com/xiaoming123abc/p/6970890.html https://conda.io/docs/help-support.h ...
- vue跨域解决方法 及设置api路径方法
vue项目中,前端与后台进行数据请求或者提交的时候,如果后台没有设置跨域,前端本地调试代码的时候就会报“No 'Access-Control-Allow-Origin' header is prese ...
- Python使用Flask框架,结合Highchart,自定义图表样式主题
参考链接:https://www.highcharts.com.cn/docs/themes 1.使用官方提供的主题js文件,只需要在 highcharts.js 后引入对应的文件即可,不用修改原有的 ...
- mysql崩溃恢复
mysql进程崩溃. 杀掉所有mysql进程,在my.cnf文件中写入innodb_recover_force=1,强制并忽略任何错误启动数据库. 用mysqldump导出所有数据,在新机器上部署好m ...
- UVa 10129 单词 (欧拉通路)
题意: 输入n(n≤100000)个单词,是否可以把所有这些单词排成一个序列,使得每个单词的第一个字母和上一个单词的最后一个字母相同(例如acm.malform.mouse).每个单词最 多包含100 ...
- CEO的作用
看到有人讨论CEO的作用. 一个观点认为CEO有三大任务: 1)为公司确定战略,并与股东沟通 2)为公司其他职位找来合适的人员 3)保证公司随时有足够的钱 他认为,可能CEO会有其他的作用,但是这三点 ...