当前位置: 首页 > news >正文

美食制作网站模板免费下载机场网站建设需求

美食制作网站模板免费下载,机场网站建设需求,做瞹瞹爱视频网站,seo网站首页优化排名怎么做前言C# 中的 Async 和 Await 关键字是异步编程的核心。使用这两个关键字可以轻松创建异步方法。使用 async 关键字定义的异步方法简称“异步方法”。异步编程并发的一种形式#xff0c;它采用furture模式或回调(callback)机制#xff0c;以避免产生不必要的线程。.Net中futur… 前言C# 中的 Async 和 Await 关键字是异步编程的核心。使用这两个关键字可以轻松创建异步方法。使用 async 关键字定义的异步方法简称“异步方法”。异步编程并发的一种形式它采用furture模式或回调(callback)机制以避免产生不必要的线程。.Net中future的类型有 Task 和 TaskResult 。异步编程的核心理念是异步操作启动了的操作将会在一段时间后完成。这个操作正在执行时但不会阻塞原来的线程。启动了这个操作的线程后可以继续执行其它任务。当操作完成时它会通知它的future或者调用回调函数以便让程序知道操作已经结束。异步的好处对于面向终端用户的GUI程序异步可以提高响应能力。对于服务器应用异步编程实现了可扩展。服务器可以利用线程池填满其可扩展性使用异步编程后可扩展性通常可以提供一个数量级可以最大程度的压榨服务器性能提高处理能力。async使用 async 修饰符可以将方法、lambda表达式或匿名方法指定为异步。async 的主要目的是使方法内的await关键字生效。//等待异步完成再执行后边的操作但是整个方法不会阻塞 var result  await DoSomethingAsync(); output.Result  result; 如果使用了 Async 最好一直使用它awaitasync 标记的异步方法可以使用 await 来指定暂定点。await 运算符通知编译器异步方法在等待的异步过程完成后才能继续通过该点。同时会将控制权返回至异步方法的调用方。async 方法在开始时以同步的方式执行。在 async 方法内部await 关键字对他的参数(一个异步任务)执行一个异步等待。它首先检查操作是否已经完成如果完成了就继续运行(同步方法)。否则他会暂停 async 方法并返回将控制权交给调用方留下一个 未完成的 Task。一段时间后操作完成async方法再恢复运行。用 await 语句等待一个任务完成当该方法在 await 处暂停时就可以捕捉上下文(context)。如果当前SynchronizationContext不为空这个上下文就是当前SynchronizationContext。如果当前SynchronizationContext为空则这个上下文为当前TaskScheduler。该方法会在这个上下文中继续运行。//此时await会捕获当前上下文 await DoSomethingAsync(); //....    //这里会试图用上边捕获的上下文继续执行 await DoSomethingAsync().ConfigureAwait(false); //.... 这里开始在新的线程中运行 ConfigureAwait 配置 Task 的 awaiter将延续任务封装回原始上下文则为True 否则为 False。详情可查阅ConfigureAwait(false)资料这里暂时不做赘述。可阅读以下文章原文ConfigureAwait FAQ  https://devblogs.microsoft.com/dotnet/configureawait-faq/译文理解C#中的ConfigureAwaithttps://www.cnblogs.com/xiaoxiaotank/p/13529413.html异步方法异常异步方法异常时会返回在 Task 对象中并将这个 Task 对象的状态改变为“已完成”。当 await 调用该 Task 对象时await 会获得并(重新)抛出该异常并保留原始的栈轨迹。注意异步方法避免使用 Task.Wait 和 TaskT.Result 因为他们会导致死锁。示例public async Taskint GetUrlContentLengthAsync() {var client  new HttpClient();//异步执行请求立即返回一个Taskstring并将控制权让出Taskstring getStringTask client.GetStringAsync(https://docs.microsoft.com/dotnet);//由于异步方法未执行等待所以可以继续执行不依赖异步返回结果的同步方法DoIndependentWork();//挂起任务进度并将控制权交割GetUrlContentLengthAsync方法的调用方并返回一个Taskint给调用方。//该任务表示将返回下载字符串长度的一个承诺//然后调用方会继续执行执行不依赖于GetUrlContentLengthAsync返回结果的其它工作否则就等待。string contents  await getStringTask;return contents.Length; }void DoIndependentWork() {Console.WriteLine(Working...); } await 运算符会暂停 GetUrlContentLengthAsync 方法在 getStringTask 完成之前GetUrlContentLengthAsync 无法继续。同时控件返回至 GetUrlContentLengthAsync 的调用方。当 getStringTask 完成时控件将在此继续。然后await 会从 getStringTask 检索 string 结果如果 DoIndependentWork 依赖于异步执行的结果则在等待 getStringTask 返回结果期间不能进行任何工作。需要改成以下写法。string getStringTask  await client.GetStringAsync(https://docs.microsoft.com/dotnet); 构成异步方法的条件方法签名要包含 async 修饰符。按照约定异步方法的名称以“Async”后缀结尾。返回类型为以下类型之一如果你的方法有返回值则返回 TaskResult 的类型。如果你的方法没有返回值则返回 Task 类型方法中至少要包含一个 await 表达式该表达式标记一个点在该点上直到等待的异步操作完成方法才能继续。同时并且将控制权返回到方法的调用方。返回类型await 运算符的操作数通常是以下几种.NET类型Task、TaskTResult、ValueTask或VauleTaskTResult。但是任何可等待表达式都可以是await运算符的操作数。总结异步可以提高响应能力。异步不会阻塞线程使用 async 来标记异步方法使用 await 来指定暂停点挂起其进度在等待的异步过程完成后才能继续通过该点。同时会将控制权返回至异步方法的调用方调用方可以继续执行不依赖于异步返回结果的其它工作。如果使用了 Async 最好一直使用它异步方法避免使用 Task.Wait 和 TaskT.Result 因为他们会导致死锁。
http://www.zqtcl.cn/news/379407/

相关文章:

  • 网站如何做权重php做网站登陆验证
  • 昆山制造网站的地方网站建设 有聊天工具的吗
  • 自己做网站制作需要多少钱如何免费注册网站域名
  • 如何做网站美化怎样写网站文案
  • 做网站排名的wordpress 调整 行距
  • 三亚文明城市建设服务中心报名网站房地产活动策划网站
  • 休闲食品网站建设规划书常德做网站专业公司
  • 做美工好的网站网页设计排版布局
  • 网站建设公司合同模板下载wordpress微信公众平台开发教程
  • 快速wordpress 建网站免费代理游戏
  • 网站模板 寻模板大气宽屏网站模板企业源码带后台
  • 做图片推广的网站威海高端网站建设
  • 台州网站公司建站网站首页模板图片
  • 网站建设本科毕业设计论文网址
  • 泰州企业建站程序乐清网站建设公司
  • 微信小程序网站建设哪家好郑州建设网
  • 网站流量查询站长之家自己创业做原公司一样的网站
  • 哪有专做飞织鞋面的网站广州企业网站制作哪家好
  • 如何用域名做邮箱 网站站长工具5g
  • 威海 医院网站建设宝安专业网站设计公司
  • 营销企业网站建设步骤建筑 企业官网设计
  • 网站建设的内容网站怎么做视频的软件
  • 大型网站多少钱企业咨询管理是干嘛的
  • 陕西建设银行网站小企业网站建设公司
  • linux下网站开发计算机网络技术专业主要学什么
  • 长沙网站维护公司建个门户网站
  • 做采集网站难不做科技的网站
  • 中小微企业服务平台seo怎么提升关键词的排名
  • 优秀企业网站欣赏店名设计wordpress文章列表添加字段
  • 有哪些做软件的网站服务器安装WordPress没有权限访问