.net  异步函数  Async await

一旦为函数添加async关键字 该函数就是一个异步函数。

异步方法必须返回 void 或 Task<> 类型。

        public static Task<double> GetValueAsync(double num1, double num2)
{
return Task.Run(() =>
{
for (int i = ; i < ; i++)
{
Thread.Sleep();
num1 = num1 + num2;
Console.WriteLine("num:{0}", i);
}
return num1;
});
}
public static async void DisplayValue()
{
double result = await GetValueAsync(1234.5, 1.01);//此处会开新线程处理GetValueAsync任务,然后方法马上返回
//这之后的所有代码都会被封装成委托,在GetValueAsync任务完成时调用
System.Diagnostics.Debug.WriteLine("Value is : " + result);
}
  /// <summary>
/// Task<string> 表示一个有返回值异步操作
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static async Task<string> IssuerAsync(string name)
{
var str = "";
var task = Task.Run(() =>
{
Thread.Sleep();
Console.WriteLine("task name:{0}", name);
str = "my name is " + name;
}); //等待任务执行
await task;
return str;
}

main() 函数

   Task<string> task = AsyncAwaitTempte.IssuerAsync("liuyl");

            Console.WriteLine("count value:");
for (int i = ; i < ; i++)
{
Console.WriteLine("task:{0}", i);
Thread.Sleep();
}
Console.WriteLine("task value:{0}", task.Result);
   /// <summary>
/// Task<string> 表示一个有返回值异步操作
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static async Task<string> IssuerAsync(string name)
{
string str = "";
var task = new Task(() =>
{
for (int i = ; i < ; i++)
{
Thread.Sleep();
Console.WriteLine("task name:{0}", name);
}
str = "my name is " + name;
});
task.Start();
//task.Wait(); 与 await task ; 不能同时使用
//等待任务执行
await task ;
return str;
}

.net 异步函数 Async await的更多相关文章

  1. 异步函数async await在wpf都做了什么?

    首先我们来看一段控制台应用代码: class Program { static async Task Main(string[] args) { System.Console.WriteLine($& ...

  2. 简单的异步函数async/await例子

    function resolveAfter2Seconds(x){ return new Promise(resolve => { setTimeout(() => { resolve(x ...

  3. javascript异步编程 Async/await

    Async/await Async/await 在学习他之前应当补充一定的 promise 知识 它是一种与 promise 相配合的特殊语法,目前被认为是异步编程的终级解决方案 值得我们每一个人学习 ...

  4. 抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext

    长话短说,本文带大家抓住异步编程async/await语法糖的牛鼻子: SynchronizationContext 引言 C#异步编程语法糖async/await,使开发者很容易就能编写异步代码. ...

  5. 温故知新,CSharp遇见异步编程(Async/Await),聊聊异步编程最佳做法

    什么是异步编程(Async/Await) Async/Await本质上是通过编译器实现的语法糖,它让我们能够轻松的写出简洁.易懂.易维护的异步代码. Async/Await是C# 5引入的关键字,用以 ...

  6. 异步编程Async/await关键字

    异步编程Async \await 关键字在各编程语言中的发展(出现)纪实. 时间 语言版本 2012.08.15 C#5.0(VS2012) 2015.09.13 Python 3.5 2016.03 ...

  7. MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法

    MVC+Spring.NET+NHibernate .NET SSH框架整合   在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...

  8. 令人清爽的异步函数async、await

    1.什么是async.await? async用于声明一个函数是异步的.而await从字面意思上是"等待"的意思,就是用于等待异步完成.并且await只能在async函数中使用; ...

  9. .net 异步编程async & await关键字的思考

    C# 5.0引入了两个关键字 async和await,这两个关键字在很大程度上帮助我们简化了异步编程的实现代码,而且TPL中的task与async和await有很大的关系 思考了一下异步编程中的asy ...

随机推荐

  1. .net Reactor之exe、dll文件混淆

    .net Reactor之exe.dll文件混淆 .net Reactor的主要功能: 1.是对dll文件.exe文件进行反编译混淆 2.对dll进行内部加锁,限制其使用的固定机器.固定时间.部署次数 ...

  2. 直接用SQL语句把DBF导入SQLServer

    直接用SQL语句把DBF导入SQLServer   在SQLServer中执行 SELECT * into bmk FROM OpenDataSource( ’Microsoft.Jet.OLEDB. ...

  3. PHP - declare tick

    今天看php手册,结构流程控制语句,翻到个没见过的关键字declare(申明的意思).于是稍稍看了下. 大概意思是:定义一段代码.关于他合适执行,怎么执行完全依照他的参数. 反正不知道什么意思.先来一 ...

  4. lucene3.0范围查找

    在lucene3.0以上版本中,范围查询也有很大的变化,RangeQuery已经不推荐使用,使用TermRangeQuery和NumericRangeQuery两个替代.TermRangeQuery: ...

  5. 201671010140. 2016-2017-2 《Java程序设计》java学习第九周

    第七章:<异常,断言和日志>知识点小结       本周,进行了对Java中的异常处理的了解学习,以下是部分所得. 一.未检查异常与已检查异常的区别: 未检查异常处理方法:1.捕获2.继续 ...

  6. 高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令

    1. error_log 含义:指定存储错误日志的文件 语法:error_log <file> [debug|info|notice|warn|error|crit] 缺省:${prefi ...

  7. 这几天用高通VUFORIA的体会

    VUFORIA 主要用来做图像识别,先把图片上至网站,然后网站分析生成数据包 在UNITY中导入VUFORIA SDK和数据包后,就可以正常使用了 对了,数据包需要勾选Load Active那个选项, ...

  8. hibernate初使用

    准备工作,安装及配置Hibernate http://zhoualine.iteye.com/blog/1190141 在产生数据库表映射 Java 对象时,我增加了数据库中的两张表分别为Chatlo ...

  9. Python使用signal模块实现定时执行

    在liunx系统中要想每隔一分钟执行一个命令,最普遍的方法就是crontab了,如果不想使用crontab,经同事指点在程序中可以用定时器实现这种功能,于是就开始摸索了,发现需要一些信号的知识... ...

  10. 一张图让你看懂HDMI针脚定义

    一张图让你看懂HDMI针脚定义 摘自:http://www.hdmiaoc.com/cjwt-175.html 什么是HDMI线,HDMI插头的每根PIN脚是什么意思? 大部分使用HDMI标准的研发及 ...