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

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

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

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

基于IAsyncResult的APM模型實(shí)現(xiàn)異步操作

冬至配餃子 ? 來源:希夏普 ? 作者:jqwang ? 2022-08-19 11:16 ? 次閱讀

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

Demo

我們先來看一個(gè)同步示例。新建WPF程序,在界面上放一個(gè)按鈕。點(diǎn)擊按鈕訪問外網(wǎng),會(huì)有一定時(shí)間的阻塞。
pYYBAGL-_qeAPVyfAAD1IE_OjOc100.png

當(dāng)我們點(diǎn)擊按鈕后,因?yàn)閣eb請求是同步的,會(huì)阻塞UI線程一定時(shí)間。從輸出日志上看阻塞時(shí)間是 1 秒鐘左右,此時(shí)界面呈卡死狀態(tài)。

poYBAGL-_rmAQnXzAAFr-wN5eyY784.png

日志輸出如下:

poYBAGL-_smAYNE6AAArb7NO7WY149.png

從運(yùn)行效果和日志,我們可以看出:

?WebRequest方法調(diào)用前后都是在同一個(gè)線程上執(zhí)行-UI線程

?WebReqeust方法阻塞了UI線程,導(dǎo)致“假死”現(xiàn)象

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

poYBAGL-_ymAW9W8AAF1Q51U0Sw475.png

poYBAGL-_y6AOTWZAAA5LQYoYik427.png

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

日志輸出如下:

pYYBAGL-_12AM_2aAAA7KWQJx-M423.png

從運(yùn)行效果和日志,我們可以看出:

?異步方法不會(huì)阻塞調(diào)用方法,調(diào)用后立刻返回

?異步方法會(huì)在另外一個(gè)線程上執(zhí)行

IAsyncResult

BeginOperationName 方法會(huì)返回一個(gè)實(shí)現(xiàn)了 IAsyncResult 接口的對象。該對象存儲(chǔ)了關(guān)于異步操作的信息

poYBAGL-_3SAWdDXAACM2tYq1QA599.png

轉(zhuǎn)到定義,我們可以看到接口中都包含哪些內(nèi)容:

pYYBAGL-_4eASnqaAABRku0vIWA696.png

自定義異步方法

實(shí)現(xiàn)該接口,定義自己的異步方法。

poYBAGL-_5mAGXFKAADVN429fBk232.png

我們需要新建一個(gè)回調(diào)函數(shù):

pYYBAGL-_6qANA47AAClHdlc9o4419.png

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

poYBAGL-_8aAaAa5AAFNs87dVXU166.png

新增一個(gè)按鈕,進(jìn)行調(diào)用:

pYYBAGL-_92ARluPAAD6rQPJe84712.png

運(yùn)行效果如下:

pYYBAGL-__CAGHZJAAFxAYyEPY4508.png

日志輸出如下:

poYBAGL_AAOAamJOAAA1XXh4sns725.png

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

?自定義的異步方法沒有導(dǎo)致 UI 卡頓

?APM就是把耗時(shí)的任務(wù)交給新線程去做,然后利用委托進(jìn)行回調(diào)

普通方法的異步

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

pYYBAGL_ABmAHW8uAABIrRtICAY507.png

總結(jié)

1.APM 模型是基于IAsyncResult來實(shí)現(xiàn)異步操作的

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

3.在新線程上執(zhí)行耗時(shí)操作

4.耗時(shí)操作結(jié)束后,修改 IAsyncResult 里的結(jié)果數(shù)據(jù),并調(diào)用 IAsyncResult 里的委托回調(diào)

5.在回調(diào)里獲取 異步操作 的結(jié)果



審核編輯:劉清

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

    關(guān)注

    1

    文章

    71

    瀏覽量

    13017
  • 回調(diào)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    87

    瀏覽量

    11588
  • wpf
    wpf
    +關(guān)注

    關(guān)注

    1

    文章

    18

    瀏覽量

    8887
收藏 人收藏

    評論

    相關(guān)推薦

    異步電機(jī)仿真模型

    這里有一個(gè)完整的異步電機(jī)直接轉(zhuǎn)矩控制的仿真模型,大家可以交流下!
    發(fā)表于 10-09 14:04

    【我是電子發(fā)燒友】低功耗設(shè)計(jì)的最佳編程模型異步編程

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

    阿里云 APM 解決方案地圖

    用程序進(jìn)行接口性能,鏈路追蹤,以及錯(cuò)誤診斷三個(gè)方面監(jiān)控。其中,應(yīng)用監(jiān)控通過探針,亦可捕獲容器和操作系統(tǒng)的性能和狀態(tài),因此也可用于容器和操作系統(tǒng)的性能監(jiān)控。操作系統(tǒng):主要由云監(jiān)控的主機(jī)監(jiān)控來實(shí)現(xiàn)
    發(fā)表于 07-05 16:54

    三相異步電機(jī)靜止?fàn)顟B(tài)下參數(shù)辨識(shí)MATLAB仿真模型

    三相異步電機(jī)靜止?fàn)顟B(tài)下參數(shù)辨識(shí)MATLAB仿真模型實(shí)現(xiàn)對定子電阻、轉(zhuǎn)子電阻、互感和漏感的辨識(shí)。
    發(fā)表于 08-15 13:16

    如何對三相異步電機(jī)SPWM變頻調(diào)速系統(tǒng)模型進(jìn)行Simulink仿真

    三相異步電機(jī)SPWM的基本原理是什么?怎樣去搭建一種三相異步電機(jī)SPWM變頻調(diào)速系統(tǒng)模型?如何對三相異步電機(jī)SPWM變頻調(diào)速系統(tǒng)模型進(jìn)行Si
    發(fā)表于 08-02 06:12

    為什么說回調(diào)函數(shù)可以實(shí)現(xiàn)異步操作

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

    異步電動(dòng)機(jī)動(dòng)態(tài)數(shù)學(xué)模型

    ...PAGE...目錄 TOC \o "1-3" \h \z \u1 引言 12 異步電動(dòng)機(jī)動(dòng)態(tài)數(shù)學(xué)模型 22.1異步電動(dòng)機(jī)動(dòng)態(tài)數(shù)學(xué)模型的性質(zhì) 22.2三相
    發(fā)表于 09-03 06:54

    基于MATLAB及SIMULINK的異步電動(dòng)機(jī)仿真模型及起動(dòng)過程的仿真

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

    Modelica標(biāo)準(zhǔn)庫里的異步電機(jī)模型

    Modelica標(biāo)準(zhǔn)庫里的異步電機(jī)模型過于復(fù)雜,為了便于學(xué)習(xí),我用最基本的異步電機(jī)方程寫了一個(gè)Modelica模型,公式參照陳伯時(shí)的《電力拖動(dòng)自動(dòng)控制系統(tǒng)--運(yùn)動(dòng)控制系統(tǒng)》第3版的19
    發(fā)表于 09-06 07:46

    異步事件驅(qū)動(dòng)模型在嵌入式系統(tǒng)中的應(yīng)用

    異步事件驅(qū)動(dòng)并發(fā)模型運(yùn)用于嵌入式Linux,可使程序占用系統(tǒng)資源少、運(yùn)行效率高。本文介紹了以libcssl函數(shù)庫中提供的串行接口函數(shù),在嵌入式 Linux的串行通信中實(shí)現(xiàn)異步事件驅(qū)
    發(fā)表于 06-09 09:07 ?13次下載

    APM飛行操作

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

    CUDA簡介: CUDA編程模型概述

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

    異步、同步電機(jī)的模型、矢量控制圖

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

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

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

    異步電機(jī)控制筆記

    異步電機(jī)控制筆記 本筆記討論異步電機(jī)的控制算法。先對異步電機(jī)在ABC坐標(biāo)系以及DQ0坐標(biāo)系下的電壓方程與磁鏈方程進(jìn)行推導(dǎo),然后對常用的旋轉(zhuǎn)坐標(biāo)系下的異步電機(jī)
    發(fā)表于 03-29 11:40 ?5次下載
    <b class='flag-5'>異步</b>電機(jī)控制筆記
    主站蜘蛛池模板: 久久精品国产男包| 内地同志男16china16| 纯肉小黄文高H| 成年人视频在线免费| 成人在线视频国产| 国产激情视频在线观看| 国产精品久久精品视| 国产午夜视频在永久在线观看| 国产日韩精品一区二区三区在线| 黄A无码片内射无码视频| 精品国产在线亚洲欧美| 巨胸美女狂喷奶水www网麻豆| 泷泽萝拉首部av| 欧美日韩永久久一区二区三区| 日本美女搞基视频| 亚洲 色 欧美 爱 视频 日韩| 亚洲色噜噜狠狠站欲八| 最近最新的日本字幕MV| 啊片色播电影| 国产色婷婷精品人妻蜜桃成熟时| 精品亚洲AV无码蜜芽麻豆| 免费成年人在线观看视频| 日韩欧美视频一区| 亚洲国产欧美在线人成aaaa20| 伊人久久大香线蕉综合网站| 99日韩精品| 国产美女影院| 美女诱点第6季| 色琪琪无码成人AV视频| 亚洲香蕉网久久综合影院| 99国产精品久久久久久久日本竹| 丰满五十六十老熟女HD60| 江苏电台在线收听| 欧美精品v欧洲高清| 午夜婷婷一夜七次郎| 一本道高清无码v| aa级毛片毛片免费观看久| 国产睡熟迷奷系列网站| 久热这里只有精品99国产6| 亲嘴扒胸摸屁股视频免费网站| 香蕉尹人综合精品|