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

推广软件公司移动端关键词优化

推广软件公司,移动端关键词优化,网站主机设置方法,代理服务网站文章目录 1. 异步编程介绍1.1 简单介绍1.2 async/await 使用1.3 Task/Task<TResult> 对象 2. 样例2.1 迅速启动所有任务&#xff0c;仅当需要结果才等待任务执行2.2 使用 await 调用异步方法&#xff0c;即使这个异步方法内有 await 也不会同时执行回调和向下执行操作(必…

文章目录

    • 1. 异步编程介绍
      • 1.1 简单介绍
      • 1.2 async/await 使用
      • 1.3 Task/Task<TResult> 对象
    • 2. 样例
      • 2.1 迅速启动所有任务,仅当需要结果才等待任务执行
      • 2.2 使用 await 调用异步方法,即使这个异步方法内有 await 也不会同时执行回调和向下执行操作(必须完成外层await 所规定的方法)
    • 3. 补充拓展说明
      • 3.1 Task关键字

1. 异步编程介绍

1.1 简单介绍

  异步编程官方参考文档:异步编程

1.2 async/await 使用

  细节注意

  1. async 用来修饰方法,表示这个方法可以成为一个异步方法,但是如果内部没有搭配使用 await 关键字的话其作用还是等效于一个同步方法
  2. await 关键字必须用于在 async 修饰的异步方法内使用,await 的作用就是立即返回调用方法的结果,外部调用该 async 方法的地方将不会等待这个 await 关键字修饰 方法/其他延时 操作的完成。但这个async 异步方法内,下面的操作还是必须要等待这个 await 关键字修饰 方法/其他延时 操作的完成.
class Program {static void Main(string[] args) {Console.WriteLine("This is methof(Main) starting ...");Test();Console.WriteLine("This is methof(Main) ending ...");Console.ReadLine();}static async void Test() {Console.WriteLine("This is methof(Test) starting ...");// 立即返回Test函数运行结果,继续Main函数运行. 并且同时将会进行延时操作后再继续下面的方法.await Task.Delay(3000); Console.WriteLine("This is methof(Test) ending ...");}}
/*
This is methof(Main) starting ...
This is methof(Test) starting ...
// await Task.Delay(3000); 返回主线程运行 + 当前Test()方法此位置暂停运行3s
This is methof(Main) ending ... 
This is methof(Test) ending ...
*/

1.3 Task/Task 对象

  简单说明

  1. 使用Task或Task对象来保存正在运行的任务, 可以使用这个对象来保存一个正在运行的任务.
class Program {static void Main(string[] args) {Task<int> task = Task.Run(() => {Console.WriteLine("Hello world ..");return 2024;});int sum = task.Result;Console.WriteLine(sum);}
}
/*
Hello world ..
2024
*/

2. 样例

2.1 迅速启动所有任务,仅当需要结果才等待任务执行

假设我们需要完成打游戏 5s,我们也需要完成听歌曲 5s,最后我们需要去洗个澡 3s. 我们想要异步完成打游戏和听歌曲的操作,但是洗澡必须先完成打游戏和听歌曲两个步骤.
  您可以立即启动所有异步任务。仅当您需要结果时才等待每个任务,借助 await 关键字,await 关键字将会阻塞异步操作的执行,必须等待所有前缀步骤完成后,再完成接下来的步骤

class Program {static void Main(string[] args) {Test();Console.WriteLine("This is Main Finish  .....");Console.ReadLine();}static async void Test() {Task t1 = playGameAsync();Task t2 = listenMusicAsync();await t1;await t2; // await 关键字表示必须等待这两个方法完成才能继续接下来的洗澡操作Console.WriteLine("i am washing right now ...");}static async Task playGameAsync() {await Task.Run(() => {Console.WriteLine("I am play game ..");Task.Delay(5000).Wait();});Console.WriteLine("i am finish play game");}static async Task listenMusicAsync() {await Task.Run(() => {Console.WriteLine("I am listen music ..");Task.Delay(5000).Wait();});Console.WriteLine("i am finish listen music");}
}
/*
I am play game ..
I am listen music ..
This is Main Finish  ..... // 这个地方的原因
(这个地方将会明显等待 5s, 洗澡操作必须等待听音乐和游戏操作先完成)
i am finish play game
i am finish listen music
i am washing right now ...
*/

2.2 使用 await 调用异步方法,即使这个异步方法内有 await 也不会同时执行回调和向下执行操作(必须完成外层await 所规定的方法)

class Program {static void Main(string[] args) {Test(); // 同步方法调用异步方法,碰到了异步方法内的 await( await playGameAsync() ) 就会回调执行Console.WriteLine("This is Main Finish  .....");Console.ReadLine();}static async void Test() {await playGameAsync(); // 这里不会因为 playGameAsync() 方法内有await就回调执行, 必须等待异步方法playGameAsync()执行完全.Console.WriteLine("==========================================================");Console.WriteLine("i am washing right now ...");}static async Task playGameAsync() {await Task.Run(() => {Task.Delay(3000).Wait();Console.WriteLine("I am play game ..");});Task.Delay(3000).Wait();Console.WriteLine("i am finish play game");}}
/*
This is Main Finish  .....(等待3s)
I am play game ..
i am finish play game  (明显发现 finish play game 的输出顺序会优先于 ====== )
==========================================================
i am washing right now ...
*/

3. 补充拓展说明

3.1 Task关键字

http://www.yayakq.cn/news/192861/

相关文章:

  • 购物车网站建设济宁网站建设 济宁智雅
  • 手机网站qq咨询代码wordpress 书
  • 做电脑桌面网站好看的网站后台
  • 南沙门户网站建设企业网站建设模板
  • 烟台网站seo服务洛阳酒店网站开发大全
  • 安康网站建设电话网站建设公司价格差别
  • 宜昌网站seo玉环建设规划局网站
  • 建设厅里网站查不到外地施工单位工厂外贸网站建设
  • 四川德阳做网站和app网络建设设计方案
  • 城阳做网站wordpress文章图片自适应
  • 建设银行门户网站劳动合同模板免费
  • 网站建设需要摊销几年北京企业模板建站
  • 怎么自己做网站表白公司网站开发的国内外研究现状
  • 建网站问题html5响应式网站源码
  • 网站开发与维护总结北京网页游戏制作培训
  • 怎样做网商网站网站开发的五个阶段
  • 网站的动态文字是怎么做的湖南变电站公司中企动力技术支持网站建设
  • 高端精品网站建设百度商桥要怎么添加到网站
  • 建设网站需要哪些手续西安企业管理咨询有限公司
  • 亚马逊的免费网站超市会员管理系统
  • 网站链接改名怎做301怎么在百度上搜到自己的网站
  • 好的做彩平图的网站中英文版网站建设
  • 济南建设集团招聘信息网站安徽省建设工程信息网站
  • 中山全麦网站建设西安网站建设招聘
  • 高端个性化网站开发深圳专业建网站公司排行
  • 北京建设注册中心网站做mp3链接的网站
  • 太原网站建设方案服务安康政务微平台公众号
  • 聊城公司网站设计wordpress怎么进入论坛
  • 做企业网站cms运营服务公司经营范围
  • 全能网站服务器wordpress商城对接支付接口