Www.helper3.com
热门关键字: php net javascript java
博学而笃志 切问而近思 仁在其中
详情
async和await关键字的作用
作者:Aliot     发布时间:2020-08-03 05:52:10     阅读:6

async和await关键字的作用仅有一个:使用同步的编程方式调用异步代码,并为异步任务的返回值提供了方便的调用方式

class A
{
	public Task<int> GetIntAsync()
	{
	    return Task<int>.Factory.StartNew(()=> {
		Thread.Sleep(10000);//模拟任务执行了10s
		return 10;
	    });
	}

	public async void Echo()
	{
	    //Thread.Sleep(10000);这里的代码会阻塞调用方
	    //await 运算符暂停对其所属的 async 方法Echo的求值,直到其操作数GetIntAsync()表示的异步操作完成
	    int i = await GetIntAsync();
	    Console.WriteLine(i);
	}
}

class Program
{

	static void Main(string[] args)
	{

	    A a = new A();
	    //方式1:调用async关键字修饰的异步方法,当程序执行到异步方法Echo里面的await时,
	    //程序会会立即返回到Echo的调用方(Main函数)并继续执行下一行代码,Echo里面await的任务不会停止
	    //a.Echo();

	    //方式2:阻塞地等待异步任务的结果,等价于同步代码
	    //var t = a.GetIntAsync();//这里开新线程后立即返回
	    //Console.WriteLine(t.Result);//使用Task的Result会导致当前线程阻塞

	    //方式3:如果主流程不依赖于异步方法的返回结果,那么async和await是不需要的,
	    //工作直接等价于开线程执行一个不需要返回值的任务
	    //a.GetIntAsync();

	    Console.WriteLine("complete");

	    Console.Read();
	}
}


相关文章
loading......
滚动到顶部 滚动到底部
网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
QQ群:570078429
网站备案号:
粤ICP备17073857号