一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一個(gè)符合EAP模式的示例聲明實(shí)現(xiàn)

冬至配餃子 ? 來(lái)源:希夏普 ? 作者:jqwang ? 2022-08-19 11:42 ? 次閱讀

EAP(Event-based Asynchronous Pattern) 是基于事件的異步模式,在 .NET Framework 2.0 中引入。EAP 需要一個(gè)有 Async 后綴方法和一個(gè)或多個(gè)事件。EAP不再推薦用于新開(kāi)發(fā)。

EAP

一個(gè)符合 EAP 模式的示例聲明如下:

poYBAGL_BVSACbZ6AADl4NYOGqs759.png

BackgroundWorker

BackgroundWorker 是一個(gè)典型的 EAP 實(shí)現(xiàn)。

pYYBAGL_BYuAAKIXAAGFoVaPk4E766.pngpoYBAGL_BZGAOigJAAC8f6jct-g226.png

程序運(yùn)行效果:

pYYBAGL_Ba6AdOPcAAEJwP11zYI879.png

日志輸出:

poYBAGL_Bb6ATB7aAAA68PiRFQE615.png

從效果和日志上看:

?EAP 不會(huì)阻塞調(diào)用線程

?異步操作真正執(zhí)行是在另外一個(gè)線程

?RunWorkerCompleted 回調(diào)會(huì)回到調(diào)用線程(UI線程)

和APM比起來(lái)很像,好像只是把 委托綁定 放到了外面。我們可以看一下 BackgroundWorker 的源碼:

1.在構(gòu)造函數(shù)里實(shí)例化一個(gè)委托threadStart

poYBAGL_Bd-ARstAAAEAABVxFrE752.png

poYBAGL_BeSAVx2nAABhyEnh-z8800.png

2.調(diào)用 RunWorkerAsync() 方法

poYBAGL_BfqAebZhAACo9jMVAvA015.png

看起來(lái) EAP 的本質(zhì),還是使用了委托的異步方式(BeginInvoke),實(shí)質(zhì)上還是 APM 異步模式。

多任務(wù)

如果有多個(gè)異步任務(wù),我們希望按照先后順序執(zhí)行,并且需要在調(diào)用線程上得到所有返回值。

poYBAGL_BiCAbZrqAAD8AmfHaUM302.pngpYYBAGL_Bi-AaiwHAAFI9DSCDSs650.png

運(yùn)行起來(lái),發(fā)現(xiàn)有異常:

poYBAGL_BkSAOZGCAACXEBLdRk8500.png

由此可見(jiàn)在完成第一個(gè)異步操作之前沒(méi)有對(duì)asyncResult2進(jìn)行賦值,asyncResult2執(zhí)行異步等待的時(shí)候報(bào)異常。也可以有其他方法來(lái)解決這個(gè)問(wèn)題,但會(huì)比較復(fù)雜。



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • APM
    APM
    +關(guān)注

    關(guān)注

    1

    文章

    72

    瀏覽量

    13243
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    507

    瀏覽量

    20041
  • .NET技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    5795
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    有沒(méi)有辦法或示例來(lái)編寫個(gè)函數(shù)來(lái)檢查CAN硬件的接收緩沖區(qū)并以更符合RTOS的輪詢方式提取任何新消息?

    需將該函數(shù)聲明為靜態(tài)函數(shù),從而消除了在芯片上不同CAN總線設(shè)備之間重用代碼的許多好處。 有沒(méi)有辦法或示例來(lái)編寫個(gè)函數(shù)來(lái)檢查 CAN 硬件的接收緩沖區(qū)并以更
    發(fā)表于 01-25 06:47

    使用TLSV1.2返回EAP的無(wú)效安全性密鑰

    無(wú)法連接到2018個(gè)網(wǎng)絡(luò)策略服務(wù)器安全WPA2、企業(yè)模式、方法與tlsv1.2 EAP-TLS和EAP-PEAP。發(fā)現(xiàn)問(wèn)題是MSK的BESL懇求出口。返回到主機(jī)取代Besl按照規(guī)格
    發(fā)表于 08-16 02:12

    符合聲明5087A

    符合聲明 -5087A
    發(fā)表于 03-12 11:55

    CE認(rèn)證中的DOC符合聲明是什么意思?

    符合聲明即Declaration of Conformity,CE認(rèn)證指令規(guī)定制造商或其在歐洲設(shè)立的授權(quán)代表有義務(wù)制定符合聲明(或“歐盟符合
    發(fā)表于 10-31 08:42

    求使用EAP協(xié)議的Arduino代碼示例

    我正在尋找個(gè)使用 EAP 協(xié)議的 ESP8266 的可用示例,但我還沒(méi)有通過(guò)使用 Arduino 框架成功,所有參考文獻(xiàn)都有問(wèn)題,即它們是需要在尚未最終確定的線程中更改的代碼。有人可
    發(fā)表于 02-27 06:52

    介紹種基于任務(wù)的異步模式TAP

    TAP是基于任務(wù)的異步模式,在 .NET Framework 4 中引入。TAP是 APM 和 EAP,是推薦的模式模式
    的頭像 發(fā)表于 08-19 11:45 ?2824次閱讀

    MAX4507EAP+ MAX4507EAP+ - (Maxim Integrated) - 專用 IC

    電子發(fā)燒友網(wǎng)為你提供()MAX4507EAP+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MAX4507EAP+的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,MAX4507EAP+真值表,MAX4507EA
    發(fā)表于 11-16 19:55
    MAX4507<b class='flag-5'>EAP</b>+ MAX4507<b class='flag-5'>EAP</b>+ - (Maxim Integrated) - 專用 IC

    MAX4507EAP MAX4507EAP - (Maxim Integrated) - 專用 IC

    電子發(fā)燒友網(wǎng)為你提供()MAX4507EAP相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MAX4507EAP的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,MAX4507EAP真值表,MAX4507EAP
    發(fā)表于 11-16 20:12
    MAX4507<b class='flag-5'>EAP</b> MAX4507<b class='flag-5'>EAP</b> - (Maxim Integrated) - 專用 IC

    MAX4507EAP+T MAX4507EAP+T - (Maxim Integrated) - 專用 IC

    電子發(fā)燒友網(wǎng)為你提供()MAX4507EAP+T相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有MAX4507EAP+T的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,MAX4507EAP+T真值表,MAX4507
    發(fā)表于 11-16 21:08
    MAX4507<b class='flag-5'>EAP</b>+T MAX4507<b class='flag-5'>EAP</b>+T - (Maxim Integrated) - 專用 IC

    RX23W 的目標(biāo)板 CE Rev.2.00 符合聲明

    RX23W 的目標(biāo)板 CE Rev.2.00 符合聲明
    發(fā)表于 02-02 19:07 ?0次下載
    RX23W 的目標(biāo)板 CE Rev.2.00 <b class='flag-5'>符合</b>性<b class='flag-5'>聲明</b>

    RX23W 模塊目標(biāo)板 中國(guó) RoHS Rev.1.00 符合聲明

    RX23W 模塊目標(biāo)板 中國(guó) RoHS Rev.1.00 符合聲明
    發(fā)表于 02-02 19:20 ?0次下載
    RX23W 模塊目標(biāo)板 中國(guó) RoHS Rev.1.00 <b class='flag-5'>符合</b>性<b class='flag-5'>聲明</b>

    RX23W 模塊的目標(biāo)板 CE 符合聲明 Rev.1.00

    RX23W 模塊的目標(biāo)板 CE 符合聲明 Rev.1.00
    發(fā)表于 02-02 19:20 ?0次下載
    RX23W 模塊的目標(biāo)板 CE <b class='flag-5'>符合</b>性<b class='flag-5'>聲明</b> Rev.1.00

    RX23W 的目標(biāo)板 CE Rev.2.00 符合聲明

    RX23W 的目標(biāo)板 CE Rev.2.00 符合聲明
    發(fā)表于 07-04 18:54 ?0次下載
    RX23W 的目標(biāo)板 CE Rev.2.00 <b class='flag-5'>符合</b>性<b class='flag-5'>聲明</b>

    RX23W 模塊目標(biāo)板 中國(guó) RoHS Rev.1.00 符合聲明

    RX23W 模塊目標(biāo)板 中國(guó) RoHS Rev.1.00 符合聲明
    發(fā)表于 07-04 19:06 ?0次下載
    RX23W 模塊目標(biāo)板 中國(guó) RoHS Rev.1.00 <b class='flag-5'>符合</b>性<b class='flag-5'>聲明</b>

    RX23W 模塊的目標(biāo)板 CE 符合聲明 Rev.1.00

    RX23W 模塊的目標(biāo)板 CE 符合聲明 Rev.1.00
    發(fā)表于 07-04 19:06 ?0次下載
    RX23W 模塊的目標(biāo)板 CE <b class='flag-5'>符合</b>性<b class='flag-5'>聲明</b> Rev.1.00