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

为什么网站突然打不开wordpress json api auth

为什么网站突然打不开,wordpress json api auth,新泰高品质网站建设,网站建设安全规范随着.NET Core的流行#xff0c;相信你现在的代码中或多或少的会用到async以及await吧#xff01;毕竟已成标配。那么我们为什么要用async以及await呢#xff1f;其实这是微软团队为我们提供的一个语法糖#xff0c;让我们不用996就可以轻松的编写异步代码#xff0c;并无… 随着.NET Core的流行相信你现在的代码中或多或少的会用到async以及await吧毕竟已成标配。那么我们为什么要用async以及await呢其实这是微软团队为我们提供的一个语法糖让我们不用996就可以轻松的编写异步代码并无太过神奇的地方。那么问题来了什么是异步异步到底又是怎样的一个过程呢从一个故事说起在开始讲异步前我们先从一个生活中的小故事说起吧。话说2019年12月15日周日这一天有位程序猿小祝在这天居然没有加班选择在家休息了然后他习惯性的用Microsoft To Do罗列了一下这天要做的事情如下图所示这一天这个程序猿小祝计划早上九点起床洗澡然后吃早餐洗衣服分享一篇关于C#异步相关的文章晚上在家加下班~~没错这个苦逼休息的时候也得工作不然下周的任务有可能完不成要挨批了。这个时候这个程序猿小祝可以选择1.起床洗澡2.吃早餐3.洗衣服4.写文章5.打会球然后“远程写代码”。这个过程有严格的执行顺序这个过程可以视为一个同步的过程。如下图所示当然这个程序猿小祝却采用了另一种方式来进行起床后先把衣服换下来用洗衣机洗了然后开始洗澡然后吃饭写了一会文章然后等衣服洗好后再把衣服给晾好继续回来写文章最后在晚上的时候远程写代码。在这个过程中这个程序猿在洗衣服的同时就去洗澡吃饭写了会文章了这个过程就是一个异步的过程。可能这个故事比喻的不恰当不过大伙将就着看下吧总结一下同步跟异步吧同步方法可以认为程序是按照你写这些代码时所采用的顺序执行相关的指令的。异步方法可以在尚未完成所有指令的时候提前返回如上面的洗衣服过程没执行完就返回去洗澡了等到该方法等候的那项任务执行完毕后在令这个方法从早前还没执行完的那个地方继续往下运行如衣服洗好晾好后继续写文章了。下面我们结合伪代码来进行更加详细的讲解吧。伪代码实例讲解这一节我们就用伪代码来分别实现下同步过程及异步过程吧。同步过程下面我们用伪代码来实现上述故事中的过程吧。static void Main(string[] args){Console.WriteLine(Main异步演示开始~~~~~);Stopwatch stopwatch  Stopwatch.StartNew();Bash();//洗澡BreakFast();//吃早餐WashClothes();//洗衣服WriteArticle();//写文章WritingCode();//写代码Console.WriteLine(Main异步演示结束~~~~~共用时{0}秒, stopwatch.ElapsedMilliseconds/1000);Console.ReadKey();}private static void Bash(){Console.WriteLine(洗澡开始~~~~~);Thread.Sleep(1*1000);//模拟过程Console.WriteLine(洗澡结束~~~~~);}private static void BreakFast(){Console.WriteLine(吃早餐开始~~~~~);Thread.Sleep(1 * 1000);//模拟过程Console.WriteLine(吃早餐结束~~~~~);}private static void WashClothes(){Console.WriteLine(洗衣服开始~~~~~);Thread.Sleep(6 * 1000);//模拟过程Console.WriteLine(洗衣服结束~~~~~);}private static void WriteArticle(){Console.WriteLine(写文章开始~~~~~);Thread.Sleep(20 * 1000);//模拟过程Console.WriteLine(写文章结束~~~~~);}private static void WritingCode(){Console.WriteLine(写代码开始~~~~~);Thread.Sleep(12 * 1000);//模拟过程Console.WriteLine(写代码结束~~~~~);}上面的代码没什么难的写完代码后我们直接dotnet run一下代码如下图所示我们可以看到这个代码的执行过程是严格按照我们编码的顺序执行的即同步运行的代码。这里用时共40秒异步过程我们只需要稍微改造下使得代码异步执行再来看下效果吧伪代码如下static async Task Main(string[] args){Console.WriteLine(Main异步演示开始~~~~~);Stopwatch stopwatch  Stopwatch.StartNew();ListTask tasks  new ListTask{Bash(),//洗澡};tasks.Add(BreakFast());//吃早餐tasks.Add(WashClothes());//洗衣服tasks.Add(WriteArticle());//写文章tasks.Add(WritingCode());//写代码await Task.WhenAll(tasks);Console.WriteLine(Main异步演示结束~~~~~共用时{0}秒, stopwatch.ElapsedMilliseconds/1000);Console.ReadKey();}private static async Task Bash(){Console.WriteLine(洗澡开始~~~~~);await Task.Delay(1*1000);//模拟过程Console.WriteLine(洗澡结束~~~~~);}private static async Task BreakFast(){Console.WriteLine(吃早餐开始~~~~~);await Task.Delay(1 * 1000);//模拟过程Console.WriteLine(吃早餐结束~~~~~);}private static async Task WashClothes(){Console.WriteLine(洗衣服开始~~~~~);await Task.Delay(6 * 1000);//模拟过程Console.WriteLine(洗衣服结束~~~~~);}private static async Task WriteArticle(){Console.WriteLine(写文章开始~~~~~);await Task.Delay(20 * 1000);//模拟过程Console.WriteLine(写文章结束~~~~~);}private static async Task WritingCode(){Console.WriteLine(写代码开始~~~~~);await Task.Delay(12 * 1000);//模拟过程Console.WriteLine(写代码结束~~~~~);}然后我们再直接dotnet run一下代码如下图所示我们可以看到这个代码的执行过程中遇到await后就会返回执行了待await的代码执行完毕后才继续执行接下来的代码的为了避免有的读者看不懂我简单分析其中一个方法的执行过程吧。具体的还需要你自己把异步代码拷贝下来多打几个断点然后把等待时间*100时间长点方便我们查看断点的进入顺序否则时间短还没来得及进断点可能代码已经执行完了看看断点的进入步骤吧我也只列了一部分具体的你们自行打断点看下吧。异步原理解析通过上面的伪代码分析相信你已经对异步有所了解了。接下来我们就来看看系统到底是怎么实现出这样的效果的。下面只是简单地进行下表述如果不正确的欢迎大家指正。编译器在处理异步方法的时候会构建一种机制该机制可以启动await 语句所要等候的那项异步任务并使得程序在该工作完成之后能够用某个线程继续执行await语句后面的那些代码。这个await语句正是关键所在。编译器会构建相应的数据结构并把await之后的指令表示成delegate使得程序在处理完那项异步任务之后能够继续执行下面的那些指令。编译器会把当前方法中的每一个局部变量的值都保存在这个数据结构中并根据await语句所要等候的任务来配置相应的逻辑让程序能够在该任务完成之后指派某个线程从await语句的下一条指令开始继续执行。实际上这相当于编译器生成了一个delegate用以表示await语句之后的那些代码并写入了相应的状态信息用以确保await语句所等候的那项任务执行完毕以后这个delegate能够正确的得到调用。这使得该方法看上去好像是从早前暂停的地方继续往下执行了也就是说系统会把状态恢复到早前暂停的样式并且直接把程序中的某个线程放到适当的语句上令其能够继续向下运行。这个过程实际上是由SynchronizationContext类来实现的该类用来保证异步方法能够在它所等候的任务执行完毕时从早前停下来的地方继续往下运行并确保该方法此时所处的环境与上下文能够与当初的情况一样。总结通过上面的讲述我们可以知道通过async与await关键字写出来的异步方法并没有太过神奇的地方。只不过编译器会针对这种方法生成许多代码使得调用这个方法的主调方无需等待该方法完工就可以继续往下执行并确保该方法所等候的那项任务在执行过程中发生的错误能够适当的得到回报。这样的好处是如果异步方法执行到await语句时它所要等候的那项任务还没有完成那么该方法的执行进度就会暂停在那里直到那项任务完成之后才会继续往下执行。希望这篇文章对你有所帮助当然光了解异步没用还要能够高效的编写异步代码才行哦接下来我会抽时间讲讲进行异步开发的一些建议。当然我以前也写过相关的文章你可以提前看下。同时欢迎大家加入.net core两千人交流群637326624交流。当然我不会告诉你关注公众号会第一时间收到文章推送。很久没写文章了生疏了很多大家将就着看吧参考《More Effective C#》机械工业出版社依乐祝自己的理解好看你就点点我
http://www.zqtcl.cn/news/485524/

相关文章:

  • 云南网站设计海外直购网站建设方案书范文
  • 网站视频小程序商城多少钱
  • 美耐皿 技术支持 东莞网站建设如何将网站指向404
  • 如何做网站的维护和推广wordpress首页在哪里修改
  • 网站建设公司在哪里宣传网站群系统建设的目的
  • 建立网站的教学书籍最新网站建设哪家公司好
  • 视频网站开发者工具科技网站新版网站上线
  • 网站设计简单网页百度提交网站
  • 建设企业网站网站崩溃西安百度网站快速排名
  • 前端 国外 网站请人做网站得多少钱
  • 微商如何做网站引流上海市有哪些公司
  • 服务类型网站开发需要哪些技术中国设计师网效果图
  • 电子商务网站建设技术有哪些方面做婚礼请柬的网站有哪些
  • 做暖暖欧美网站全国职工素质建设工程专题网站
  • 策划对于企业网站建设来说网站开发新加坡
  • 做仪表行业推广有哪些网站个人网站备案模板
  • 做微网站是订阅号还是服务号号网站建设叫什么软件
  • 美团初期是怎么建网站特效视频素材网站
  • 网站建设行业市场分析刚创业 建网站
  • 网站推广昔年下拉wordpress 首页添加链接地址
  • 网站年费推荐专业做网站公司
  • 邵东微网站建设设计网页图片
  • 沈阳高端做网站建设应用软件商店
  • 05网站首页设计说明
  • 给企业做网站运营手机做简单的网站
  • 做网站卖广告国家公示企业信息查询系统
  • 西安网站建设公司找哪家如何做平台推广赚钱
  • 网站优化个人工作室怎么找网站开发公司
  • 如何把网站一个栏目做301跳转推广途径
  • 房山做网站北京本地网络推广平台