日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Windows8.1之異步編程

使用 Windows 8.1 Preview 中新的計(jì)劃程序 API,你可以設(shè)置任務(wù)的優(yōu)先級(jí)并管理作業(yè)。這樣有助于你以更高效方式編寫使用系統(tǒng)資源的應(yīng)用并為用戶提供響應(yīng)更快的體驗(yàn)。

編寫響應(yīng)性極高的應(yīng)用很有挑戰(zhàn)性。 你可以組合使用多種復(fù)雜的 UI 元素,包括 ListView 控件、SemanticZoom 控件和自定義控件,這些元素均會(huì)競(jìng)爭(zhēng)系統(tǒng)資源。 很多元素既需要—?jiǎng)赢嫛燃磿r(shí)的前臺(tái)工作,也需要其他后臺(tái)工作。

對(duì)于 Windows 8 和 Windows Library for JavaScript 1.0,并沒(méi)有單一的集成式計(jì)劃程序。有時(shí)低優(yōu)先級(jí)的后臺(tái)任務(wù)可能會(huì)先于前臺(tái)工作占用到資源,致使應(yīng)用的行為出現(xiàn)響應(yīng)不良或遲鈍。 由于工作是在不同的隊(duì)列中計(jì)劃的,因此若要在不同隊(duì)列之間進(jìn)行協(xié)調(diào)來(lái)獲得所需的優(yōu)先級(jí),并沒(méi)有比較容易的方法。

Windows 8.1 Preview 和 Windows Library for JavaScript 2.0 Preview 引入了 Scheduler,這是一個(gè)對(duì)象/命名空間,它可以將所有工作隊(duì)列合并成單一的通用隊(duì)列。該新隊(duì)列采用基于優(yōu)先級(jí)的計(jì)劃策略,該策略可支持應(yīng)用快速、流暢地運(yùn)行,并幫助實(shí)現(xiàn)更統(tǒng)一的開(kāi)發(fā)者體驗(yàn)。 你可以輕松地計(jì)劃任務(wù),分配優(yōu)先級(jí),從而達(dá)到在適當(dāng)時(shí)間完成適當(dāng)工作的目的。

Scheduler 可協(xié)調(diào) Windows Library for JavaScript 執(zhí)行的工作,并劃分 Windows Runtime 執(zhí)行的異步工作的優(yōu)先級(jí)。使用計(jì)劃程序,可讓你的應(yīng)用在系統(tǒng)中使用與所有其他工作相對(duì)的正確優(yōu)先級(jí)按計(jì)劃工作。

計(jì)劃作業(yè)

若要計(jì)劃工作,你需要使用 schedule 方法創(chuàng)建一個(gè)作業(yè)。向此方法傳遞一個(gè)函數(shù),用于執(zhí)行你想要完成的任務(wù)。你還可以為作業(yè)指定優(yōu)先級(jí)。schedule 方法返回一個(gè)實(shí)現(xiàn) IJob 接口的對(duì)象,你可以使用此對(duì)象對(duì)所計(jì)劃的作業(yè)執(zhí)行暫停、繼續(xù)和取消操作。

此處是在普通優(yōu)先級(jí)計(jì)劃兩個(gè)簡(jiǎn)單作業(yè)的示例。

 
 
 
  1. // Schedule some work. 
  2. var job1 = S.schedule(function () { 
  3.     window.output("Running job1"); 
  4. }, S.Priority.normal); 
  5. window.output("Scheduled job1"); 
  6.  
  7. // Schedule more work. 
  8. var job2 = S.schedule(function () { 
  9.     window.output("Running job2"); 
  10. }, S.Priority.normal); 
  11. window.output("Scheduled job2"); 

若要了解完整代碼,請(qǐng)參閱計(jì)劃程序示例。

如需額外控制,你的工作函數(shù)還可以接受 IJobInfo 對(duì)象。你可以使用此對(duì)象來(lái)確定作業(yè)是否應(yīng)生成控制,計(jì)劃在當(dāng)前作業(yè)完成后應(yīng)運(yùn)行的第二個(gè)應(yīng)用,以及指定在作業(yè)生成控制的情況下應(yīng)運(yùn)行的函數(shù)。

管理作業(yè)

前一部分提到了你可以使用 schedule 返回的 IJob 對(duì)象來(lái)暫停、取消及繼續(xù)作業(yè)。你還可以使用 Scheduler 對(duì)象的 createOwnerToken 方法來(lái)獲取 IOwnerToken,然后使用它來(lái)控制其擁有的任何 IJob 對(duì)象。

此示例創(chuàng)建了若干 IOwnerToken 對(duì)象,然后使用它們來(lái)設(shè)置若干 IJob 對(duì)象的 owner 屬性。然后示例使用 IOwnerToken 來(lái)同時(shí)取消多個(gè)作業(yè)。

 
 
 
  1. var ownerObject1 = S.createOwnerToken(); 
  2. var ownerObject2 = S.createOwnerToken(); 
  3. var ownerObject3 = S.createOwnerToken(); 
  4.  
  5. // Schedule some work. 
  6. var job1 = S.schedule(function () { 
  7.     window.output("Running job1 with owner1"); 
  8. }, S.Priority.normal); 
  9. job1.owner = ownerObject1; 
  10. window.output("Scheduled job1 with owner1"); 
  11.  
  12. // Schedule some work. 
  13. var job2 = S.schedule(function () { 
  14.     window.output("Running job2 with owner2"); 
  15. }, S.Priority.normal); 
  16. job2.owner = ownerObject2; 
  17. window.output("Scheduled job2 with owner2"); 
  18.  
  19. // Schedule some work. 
  20. var job3 = S.schedule(function () { 
  21.     window.output("Running job3 with owner1"); 
  22. }, S.Priority.normal); 
  23. job3.owner = ownerObject1; 
  24. window.output("Scheduled job3 with owner1"); 
  25.  
  26. // Schedule some work. 
  27. var job4 = S.schedule(function () { 
  28.     window.output("Running job4 with owner3"); 
  29. }, S.Priority.normal); 
  30. job4.owner = ownerObject3; 
  31. window.output("Scheduled job4 with owner3"); 
  32.  
  33. window.output("Canceling jobs with owner1"); 
  34. ownerObject1.cancelAll(); 

網(wǎng)站標(biāo)題:Windows8.1之異步編程
URL地址:http://www.5511xx.com/article/coheidp.html