由于我的开发工具为vs.net 2010(.net 4.0),需先做以下两步才能进行:

1.下载并安装Async CTP (http://www.microsoft.com/en-us/download/details.aspx?id=9983)

2.添加AsyncCtpLibrary.dll的引用,我用的是win7在(C:\Users\Administrator\Documents\Microsoft Visual Studio Async CTP\Samples)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading; namespace ConsoleApplication1
{
class Program
{
static Task<string> LongTimeTask()
{
Console.WriteLine("LongTimeTask开始:" + DateTime.Now.ToString() + " ThreadId:" + Thread.CurrentThread.ManagedThreadId); Task<string> task = new Task<string>(() => { Thread.Sleep(); return "这是任务返回值"; });
task.Start(); Console.WriteLine("LongTimeTask结束:" + DateTime.Now.ToString()); return task;
} static async void AsyncCall()
{
Console.WriteLine("AsyncCall开始:" + DateTime.Now.ToString() + " ThreadId:" + Thread.CurrentThread.ManagedThreadId); string result = await LongTimeTask(); //await调用的方法需要返回Task或Task<T>,且调用await所在的方法要有async关键字
Console.WriteLine("AsyncCall:" + result); Console.WriteLine("AsyncCall结束:" + DateTime.Now.ToString());
} static void Main(string[] args)
{
Console.WriteLine("Main开始:" + DateTime.Now.ToString() + " ThreadId:" +Thread.CurrentThread.ManagedThreadId);
AsyncCall();
Console.WriteLine("Main结束:" + DateTime.Now.ToString());
Console.ReadLine();
}
}
}

运行结果:

不知大家注意到,里面的ThreadId是一致的。

需要注意的是,并不是加了async,就是异步了(而是得里面有调用await方法),例如,下面其实是同步执行的

 static async void SyncCall()
{
Thread.Sleep();
} static void Main(string[] args)
{
Console.WriteLine("Main开始:" + DateTime.Now.ToString());
// AsyncCall();
SyncCall();
Console.WriteLine("Main结束:" + DateTime.Now.ToString()); Console.ReadLine();
}

C# async await 学习笔记1的更多相关文章

  1. C# async await 学习笔记2

    C# async await 学习笔记1(http://www.cnblogs.com/siso/p/3691059.html) 提到了ThreadId是一样的,突然想到在WinForm中,非UI线程 ...

  2. async/await学习笔记

    async/await 的目的是简化使用 promises 的写法.     让我们来看看下面的例子: // 一个标准的 JavaScript 函数 function getNumber1() { r ...

  3. Async/Await 学习与示例

    参考:Async/await学习 es 7 提供了对 promise 对象的更好的操作,省去了很多丧心病狂的链式异步请求,promise 是回调地狱的福音,而 Async/Await 则是 promi ...

  4. C#同步,异步的理解,包括5.0中await和async(学习笔记)

    之前在工作中一直用的是同步线程,就是先进入画面的load事件,然后在里面进行数据库调用的处理.后面又遇到了公司软件中一些比较古老的代码,一开始在那块古老代码中增加机能的时候,我想用到数据库的数据给画面 ...

  5. ES8之async/await学习随笔

    详细学习参考文档: 阮一峰老师的博客,覆盖知识点ES6/7/8/9,本篇学习笔记对阮老师的关于async/await文档中的知识点进行分点总结 在ES8中加入async/await新特性后,很明显带来 ...

  6. async await 使用笔记

    JavaScript的网络请求异步的,即网络请求不会阻塞当前 js 代码的继续执行,而是通过回调的方式,网络请求的代码块中注入回调函数,当网络请求完成,会触发相应的事件,通过触发事件来执行注册的回调函 ...

  7. C# .net async await 学习

    async/await简单介绍 在处理比较耗时的操作(如图片处理.数据压缩.http请求等)传统的异步方法是直接使用Thread或者Task进行操作,在复杂的应用编写中可能会出现回调的问题,因此C#目 ...

  8. async和await学习笔记

    结论: (1)asyc方法的返回类型必须为:void.Task或者Task<T>.返回类型为Task的异步方法中无需使用return返回值,而返回类型为Task<TResult> ...

  9. async 函数学习笔记

    async函数就是Generator函数的语法糖. var fs = require('fs'); var readFile = function (fileName) { return new Pr ...

随机推荐

  1. JAVA设计模式之解释器模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述解释器(Interpreter)模式的: 解释器模式是类的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个 ...

  2. 八、MPxToolCommand, tool command

    1. Tool Property Sheets: 是用来更改context属性的编辑框,类似于attribute editor.(property和attribute本质上是一个意思)作用于activ ...

  3. QTP实现功能测试的时候,当新版本的页面都改变了,应该如何解决

    去更改对象仓库的属性和更改对象仓库.

  4. sscanf函数和正则表达式

    看了几篇介绍sscanf函数,真是发现自己好多东西没理解透,详细介绍使用在sscanf中使用正则表达式. 第一篇: 此文所有的实验都是基于下面的程序: char str[10]; for (int i ...

  5. 正则表达式python和C++对比

    pattern格式(基本通用): pattern格式 符号 说明 ^ 匹配开头 $ 匹配结尾 . 匹配任意一个字符 [...] 匹配任意一个指定的字符 [^...] 匹配任意一个非指定的字符 * 匹配 ...

  6. C++/MFC如何启动另一个应用程序并获取其进程 ID

    ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; {指定动作, 譬如: open.runas.print.edit.explore.find[ ...

  7. Linux内核启动logo

    之前在分析samsung的fb驱动代码的时候,其中有一段代码是处理内核logo显示相关的,今天就内核logo这个话题来聊一聊! 一.处理内核logo显示相关的代码在哪? 回到samsung的fb驱动代 ...

  8. jquery 根据年 月设置报表表头

    function setTblHeadr(thisTime){ $("#datatable_ajax1 thead").empty(); //获取星期 var weekday=ne ...

  9. Linux课程实践一:Linux基础实践(基础操作)

    一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...

  10. http://10.11.112.12:8000/homePage.jsp?loginMode=JS

    sdsad http://svn.paic.com.cn/svn/mis_pac/branches/MIS-PAC5.22.0