色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于IAsyncResult的APM模型實現異步操作

冬至配餃子 ? 來源:希夏普 ? 作者:jqwang ? 2022-08-19 11:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C#1 的時候就包含了APM,在 APM 模型中,異步操作通過 IAsyncResult 接口實現,包括兩個方法 BeginOperationName 和 EndOperationName ,分別表示開始和結束異步操作。

Demo

我們先來看一個同步示例。新建WPF程序,在界面上放一個按鈕。點擊按鈕訪問外網,會有一定時間的阻塞。
pYYBAGL-_qeAPVyfAAD1IE_OjOc100.png

當我們點擊按鈕后,因為web請求是同步的,會阻塞UI線程一定時間。從輸出日志上看阻塞時間是 1 秒鐘左右,此時界面呈卡死狀態。

poYBAGL-_rmAQnXzAAFr-wN5eyY784.png

日志輸出如下:

poYBAGL-_smAYNE6AAArb7NO7WY149.png

從運行效果和日志,我們可以看出:

?WebRequest方法調用前后都是在同一個線程上執行-UI線程

?WebReqeust方法阻塞了UI線程,導致“假死”現象

WebRequest也提供了異步方法,BeginGetResponse,EndGetResponse。我們修改一下代碼,新增一個按鈕。

poYBAGL-_ymAW9W8AAF1Q51U0Sw475.png

poYBAGL-_y6AOTWZAAA5LQYoYik427.png

poYBAGL-_zOAHVEEAAETOUoVOZI570.pngpYYBAGL-_zqAS42KAAEbyMxfzP8322.png
pYYBAGL-_0yAZdX5AAG4yny4GuM913.png

日志輸出如下:

pYYBAGL-_12AM_2aAAA7KWQJx-M423.png

從運行效果和日志,我們可以看出:

?異步方法不會阻塞調用方法,調用后立刻返回

?異步方法會在另外一個線程上執行

IAsyncResult

BeginOperationName 方法會返回一個實現了 IAsyncResult 接口的對象。該對象存儲了關于異步操作的信息。

poYBAGL-_3SAWdDXAACM2tYq1QA599.png

轉到定義,我們可以看到接口中都包含哪些內容:

pYYBAGL-_4eASnqaAABRku0vIWA696.png

自定義異步方法

實現該接口,定義自己的異步方法。

poYBAGL-_5mAGXFKAADVN429fBk232.png

我們需要新建一個回調函數:

pYYBAGL-_6qANA47AAClHdlc9o4419.png

在這之后就可以自定義 APM 異步模型了:

poYBAGL-_8aAaAa5AAFNs87dVXU166.png

新增一個按鈕,進行調用:

pYYBAGL-_92ARluPAAD6rQPJe84712.png

運行效果如下:

pYYBAGL-__CAGHZJAAFxAYyEPY4508.png

日志輸出如下:

poYBAGL_AAOAamJOAAA1XXh4sns725.png

結合效果和日志,我們可以得出如下結論:

?自定義的異步方法沒有導致 UI 卡頓

?APM就是把耗時的任務交給新線程去做,然后利用委托進行回調

普通方法的異步

如果是普通方法,也可以通過 委托異步(BeginInvoke, EndInvoke):

pYYBAGL_ABmAHW8uAABIrRtICAY507.png

總結

1.APM 模型是基于IAsyncResult來實現異步操作的

2.異步操作開始時,把委托傳遞給 IAsyncResult

3.在新線程上執行耗時操作

4.耗時操作結束后,修改 IAsyncResult 里的結果數據,并調用 IAsyncResult 里的委托回調

5.在回調里獲取 異步操作 的結果



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • APM
    APM
    +關注

    關注

    1

    文章

    72

    瀏覽量

    13442
  • 回調函數
    +關注

    關注

    0

    文章

    89

    瀏覽量

    11912
  • wpf
    wpf
    +關注

    關注

    1

    文章

    19

    瀏覽量

    9002
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    異步電機仿真模型

    這里有一個完整的異步電機直接轉矩控制的仿真模型,大家可以交流下!
    發表于 10-09 14:04

    【我是電子發燒友】低功耗設計的最佳編程模型異步編程

    異步編程可以編寫出速度快、資源省的高效程序,可以在單線程環境下實現高并發,可以在沒有操作系統的情況下實現TCP/IP等協議棧。又快又省可以將功耗控制在最低水平,因此
    發表于 04-29 20:30

    阿里云 APM 解決方案地圖

    用程序進行接口性能,鏈路追蹤,以及錯誤診斷三個方面監控。其中,應用監控通過探針,亦可捕獲容器和操作系統的性能和狀態,因此也可用于容器和操作系統的性能監控。操作系統:主要由云監控的主機監控來實現
    發表于 07-05 16:54

    三相異步電機靜止狀態下參數辨識MATLAB仿真模型

    三相異步電機靜止狀態下參數辨識MATLAB仿真模型實現對定子電阻、轉子電阻、互感和漏感的辨識。
    發表于 08-15 13:16

    為什么說回調函數可以實現異步操作

    的函數。如果你把函數的指針(地址)作為參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,我們就說這是回調函數。補充說明:回調函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用于對該事件或條件進行響應。問題:1.為什么說回調函數可以實現
    發表于 08-11 08:18

    異步電動機動態數學模型

    ...PAGE...目錄 TOC \o "1-3" \h \z \u1 引言 12 異步電動機動態數學模型 22.1異步電動機動態數學模型的性質 22.2三相
    發表于 09-03 06:54

    基于MATLAB及SIMULINK的異步電動機仿真模型及起動過程的仿真

    基于MA TL ABΠSIMUL IN K的異步電動機仿真模型及起動過程的仿真鄧建國①(湖南大學電氣與信息工程學院,湖南長沙410082)摘 要:利用MA TLAB軟件中的動態仿真工具SIMUL
    發表于 09-06 06:11

    Modelica標準庫里的異步電機模型

    Modelica標準庫里的異步電機模型過于復雜,為了便于學習,我用最基本的異步電機方程寫了一個Modelica模型,公式參照陳伯時的《電力拖動自動控制系統--運動控制系統》第3版的19
    發表于 09-06 07:46

    異步事件驅動模型在嵌入式系統中的應用

    異步事件驅動并發模型運用于嵌入式Linux,可使程序占用系統資源少、運行效率高。本文介紹了以libcssl函數庫中提供的串行接口函數,在嵌入式 Linux的串行通信中實現異步事件驅
    發表于 06-09 09:07 ?13次下載

    APM飛行操作

    有關APM飛控的飛行操作的完整教程,初學者必讀的教材。
    發表于 02-23 10:52 ?0次下載

    CUDA簡介: CUDA編程模型概述

    在 CUDA 編程模型中,線程是進行計算或內存操作的最低抽象級別。 從基于 NVIDIA Ampere GPU 架構的設備開始,CUDA 編程模型通過異步編程
    的頭像 發表于 04-20 17:16 ?3384次閱讀
    CUDA簡介: CUDA編程<b class='flag-5'>模型</b>概述

    異步、同步電機的模型、矢量控制圖

    異步、同步電機的模型、矢量控制
    發表于 07-04 14:56 ?3次下載

    介紹一種基于任務的異步模式TAP

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

    基于DQ0模型的三相異步電機自制仿真模型教程

    【SIMUlink】基于DQ0模型的三相異步電機自制仿真模型 其實,打開simscape自帶的異步電機模型,里面也是基于DQ0的電機的
    發表于 03-29 11:48 ?1次下載
    基于DQ0<b class='flag-5'>模型</b>的三相<b class='flag-5'>異步</b>電機自制仿真<b class='flag-5'>模型</b>教程

    異步電機控制筆記

    異步電機控制筆記 本筆記討論異步電機的控制算法。先對異步電機在ABC坐標系以及DQ0坐標系下的電壓方程與磁鏈方程進行推導,然后對常用的旋轉坐標系下的異步電機
    發表于 03-29 11:40 ?9次下載
    <b class='flag-5'>異步</b>電機控制筆記
    主站蜘蛛池模板: rio 快播 | 亚洲AV无码久久流水呻蜜桃久色 | 无码日韩人妻精品久久蜜桃免费 | 国产99青草全福视在线 | 京香在线观看 | 中文字幕在线观看亚洲 | 亚洲男女羞羞无遮挡久久丫 | 亚洲嫩草AV永久无码精品无码 | 在线视频一区二区三区在线播放 | 涩涩视频www在线观看入口 | 精品国产高清自在线看 | 美女被撕开胸罩狂揉大乳 | 亚洲美女视频高清在线看 | 欧美xxbb| 野花高清在线观看免费3中文 | 色综合久久88一加勒比 | 亚洲精品免播放器在线观看 | 武汉美女洗澡 | 高清国产在线播放成人 | 亚洲中文字幕无码一去台湾 | 婷婷五月久久精品国产亚洲 | 99久在线国内在线播放免费观看 | YELLOW日本动漫高清免费 | 精品国产免费第一区二区 | 亚洲精品无码一区二区三区四虎 | 国产在线精品亚洲二品区 | 国产SUV精品一区二区69 | 男女又黄又刺激B片免费网站 | 狂野欧美性猛XXXX乱大交 | 欧美午夜精品久久久久久浪潮 | 亚洲日韩乱码人人爽人人澡人 | 狠狠色香婷婷久久亚洲精品 | 亚洲视频一区在线 | 最新国产精品福利2020 | 国产 高清 无码 在线播放 | 麻花豆传媒剧国产免费mv观看 | 一品道门在线视频高清完整版 | 91免费网站在线看入口黄 | 男人J桶进男人屁股过程 | 亚洲精品无夜久久久久久久久 | 亚洲大爷操 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品