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