首页 > 其他 > 详细

async和await用法

时间:2020-12-30 11:17:37      阅读:51      评论:0      收藏:0      [点我收藏+]

用async来修饰一个方法:表明这个方法是异步的,声明的方法的返回类型必须为:void或Task或Task<TResult>。

方法内部必须含有await修饰的方法:如果方法内部没有await关键字修饰的表达式,哪怕函数被async修饰也只能算作同步方法,执行的时候也是同步执行的。
被await修饰的只能是Task或者Task<TResule>类型,通常情况下是一个返回类型是Task/Task<TResult>的方法,当然也可以修饰一个Task/Task<TResult>变量,await只能出现在已经用async关键字修饰的异步方法中。

关于被修饰的对象,也就是返回值类型是Task和Task<TResult>函数或者Task/Task<TResult>类型的变量:如果是被修饰对象的前面用await修饰,那么返回值实际上是void或者TResult

private Task<string> TestMethod()
{
var task = Task.Run(()=> {
return "Hello";
});

return task;
}

string str = await TestMethod() 等价于  string str = TestMethod() .Result  注:尽量不要用TestMethod() .Result,容易导致代码死锁。

 

private async void button1_Click(object sender, EventArgs e)
{
var t = Task.Run(() => {
return "Hello";
});
textBox1.Text = await t;
}

async和await用法

原文:https://www.cnblogs.com/xiechunjian/p/14209755.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!