[C#] 走进hg0088备用网址编程的世界 – 剖析hg0088备用网址方法(上) – 反骨仔

  这是上篇《走进hg0088备用网址计划的明 启动使使接触 async/await hg0088备用网址计划》(小引)次要的章物质,首要是与当权者协同深化讨论下hg0088备用网址方法。

  定冠词必要忧虑批准的证书的应用。

大学概况一览

引见hg0088备用网址方法

     hg0088备用网址方法:在给予应验前同时来回下令方法,在下令方法以持续给予时应验布道所。

     从式上描述或进行详细分析:

     (1)保留字:方法头用法 async 粉刷。

     (2)

盘问

:包括 N(N>0) 个 await 措辞(不在) await 措辞的话 IDE 将收回正告),表现必要hg0088备用网址给予的布道所。

[凡例]

致谢 

czcz1024

修正和增补的:没的话,照常给予。

     (3)来回典型:要挑剔来回 3 典型(空)、Task 和 Task)。Task 和 Task 辨别是非来回的抱反感将在将要遭到报应应验任务。,表现下令方法和hg0088备用网址方法可以持续给予。

     (4)限制因素:无极限之危情速递数。但不克不及用。 out 和 ref 保留字。

     (5)命名商定:方法加词尾霉臭b Async 终。

     (6)其它:隐姓埋名方法和 Lambda 措辞也可以作为hg0088备用网址抱反感;async 是语境保留字;保留字 async 必需在来回典型以前。

图1 hg0088备用网址方法的简略创作图

  就 async 保留字:

  来回典型前包括 async 保留字

  (2)它只独特的方法包括一点钟或多个 await 措辞,即,它本身不找到hg0088备用网址运算。

  (3)是语境保留字,这执意变量名。。

  现时让我们从这三种来回值的简洁的进行详细分析开端:void、Task 和 Task

  (1)Task:下令方法来自某处下令中获取一点钟 T 典型的值,hg0088备用网址方法的来回典型就必需是Task。下令方法来自某处 Task 的 Result 属性获取是 T 典型的值。

图2

图3

  (2)Task:下令方法不必要从hg0088备用网址方法中取来回值,只预期反省hg0088备用网址方法的房地产,与你可以选择回去 Task 典型的抱反感。不外,即使hg0088备用网址方法中包括 return 陈述,它什么都不的回。

图4

图5

  (3)void:下令方法给予hg0088备用网址方法,但不必要更加的互相影响。 

图6

图7

一、把持流

     hg0088备用网址方法的创作可拆分成三个多种多样的的区域:

     (1)演员以前的使相称:从方法头到高音的点钟 await 措辞当中的领地信号。

     (2)await 措辞:将被hg0088备用网址给予的信号。

     (3)演员后来的使相称:await 措辞的后续使相称。

  图1-1

  该hg0088备用网址方法给予议事程序:从期待快车前草的名列前茅开端,同时在的给予到FIR await,跺脚高音的使相称的终,总而言之,在这样历来 await 这项任务还没应验。当期待时 布道所应验后,此方法将持续同时在的给予后续使相称。在完成的后续举动中,也许它依然在 await,反复是你这么说的嘛!级别。

  抵达时 await 措辞时,螺纹将从hg0088备用网址方法来回到下令方法。也许hg0088备用网址方法的来回典型为 Task 或 Task,将找到一点钟 Task 抱反感,独特的必要hg0088备用网址应验的布道所,与将 Task 来回到Invoke方法。

  图1-2

  hg0088备用网址方法的把持流:

  ①hg0088备用网址给予 await 措辞的释放布道所。

  ②await 措辞给予应验,持续跟进。也许你再汇集 await 措辞,以异样的方法处置。

  三。抵达起点或汇集 return 日记时期,推理来回典型有三种境况:

    a.void:死亡把持流。

    b.Task:设置 Task 属性和偿清。

    c.Task:设置 Task 属性和产物 属性)和偿清。

  (4)同时,下令方法将持续给予,从hg0088备用网址方法获取 Task 抱反感。当必要值时,将被悬到 Task 抱反感的 Result 属性被分派以持续给予。

  [拮据]

  ①高音的次尤指不期而遇 await 来回的抱反感典型。此来回典型是同时在的方法头的来回典型,跟 await 措辞的来回值无足轻重。

  ②抵达hg0088备用网址方法的末了或尤指不期而遇 return 陈述,它在世界上不来回值。,相反,它偿清方法。

二、await 措辞

  await 措辞指派了一点钟hg0088备用网址给予的布道所。默许境况,该布道所在流畅螺纹hg0088备用网址给予

  每项布道所都是一点钟 awaitable 类的围住。awaitable 典型是指包括 GetAwaiter() 方法的典型。

  在世界上,你不必要建造你的OW awaitable,通常只必要应用 Task 类,它执意 awaitable。

  最简略的方法是在方法中应用它 () 找到 Task[小心]它在多种多样的的螺纹上给予。

  让我们看一眼这样建议。

图2-1

图2-2

   下面 4 个 () 它们都是被大娘的。 Task 运转(func 功用) 直地或间接得来的下令的窗体 ()。

  () 背衬 4 多种多样的付托典型表现的方法:Action、Func、Func 和 Func>

图2-3 () 方法的重压

三、How 撤销hg0088备用网址运算

   CancellationToken 和 CancellationTokenSource 这两个类容许你终止妊娠给予hg0088备用网址方法。

  (1)CancellationToken 抱反感包括关系到布道所其中的哪一个已撤销的人;也许抱反感的属性 IsCancellationRequested 为 true,布道所必要中止并来回;此抱反感运算是不可逆性的,而且要挑剔在,也执意说,在objec中请撤销 属性被设置后,它不克不及更衣。。

  (2)CancellationTokenSource 可以找到撤销Toke 抱反感,下令 CancellationTokenSource 抱反感的 Cancel 方法,理由objec的cancellationtoken 属性 IsCancellationRequested 设置为 true。

  [小心]下令 CancellationTokenSource 抱反感的 Cancel 方法,撤销不给予,相反,将应用objec的cancellationtoken 属性 IsCancellationRequested 设置为 true。

  示例

图3-1

图3-2正文了两行COD

图3-3:图3-1和3-2的给予产物(正文两行信号

  下面的数字挑剔Calle Cancel() 方法产物图,不能胜任的撤销布道所给予。

  下图为 3 呼叫秒数 Cancel() 方法撤销布道所给予:

图3-4:裁剪注释

图3-5:图3-1和图3-4的给予产物(裁剪注释)

小结

  • 引见hg0088备用网址方法的式、三种多种多样的的来回值典型(void、Task 和 Task把持快速地流动等。。
  • 简略经用的hg0088备用网址给予方法:()。[小心]它在多种多样的的螺纹上给予。
  • 怎样撤销hg0088备用网址运算。

传送门

  字母表:开端使接触 async/await hg0088备用网址计划》

  增补的篇:《走进hg0088备用网址计划的明 – 进行详细分析hg0088备用网址方法(下)》

  GUI 篇:《走进hg0088备用网址计划的明 – 在 GUI 中给予hg0088备用网址运算》


关联到原始课文:

 【参考文献】图示 C# 2012》

发表评论

电子邮件地址不会被公开。 必填项已用*标注