.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;
}

最新文章

  1. Objective-C中的语法糖
  2. Linux 中 Nginx 重启关闭
  3. dubbo配置文件报错解决方案
  4. c++学习笔记1
  5. Spearman秩相关系数和Pearson皮尔森相关系数
  6. 十天冲刺---Day4
  7. SVN版本控制工具使用学习
  8. PLSQL Developer 不能连接 oracle 12c 64位 的解决办法 for win 64
  9. iMacros 教程
  10. JavaBean用JSP调用和使用JSP动作标签的区别
  11. 所思所想 关于asp.net界面业务分离
  12. VC++编程之对话框贴图
  13. Ant学习---第四节:Ant属性的介绍
  14. 扩展 delphi 泛型 以实现类似lambda功能 , C#中的any count first last 等扩展方法
  15. highCharts 电流表、电压表
  16. Binary search for the first element greater than target
  17. Azure Backup 简介
  18. Java synchronized 总结
  19. 基于visual Studio2013解决面试题之1404希尔排序
  20. BZOJ 2083: [Poi2010]Intelligence test [vector+二分]

热门文章

  1. 常见的HTTP Header
  2. Nginx服务优化
  3. C# 在根据窗体中的表格数据生成word文档时出错
  4. 转载----开发运维资产管理系统cmdb一些观点扯淡
  5. 在kindeditor 获取textarea 中 输入的值
  6. Kettle中配置oracle RAC
  7. UNITY 画布的粗浅理解
  8. Lnmp 源码编译安装、常见错误整理
  9. Cross-Browser, Event-based, Element Resize Detection(转)
  10. IOS数据持久化存储之SQLite3第三方库FMDB的使用