公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C#異步編程回調函數應用

admin
2025年3月28日 8:32 本文熱度 164

回調函數使得程序能在異步操作完成后執行后續處理,可當作執行完成標志。

異步編程是建立在委托的基礎上的一種編程方法;異步調用的每個方法都是在獨立的線程中執行的,本質上就是一種多線程程序;異步比較適合在后臺運行較為耗時的簡單任務,并且任務之間相互獨立,不能有直接訪問可視化控件的代碼。
使用回調函數同時執行多個任務。
IAsyncResult result = objCal.BeginInvoke(9 * i, 1000*i, CallBack, i);
這里最后一個參數i給回調函數的字段AsyncState,即i的值就是result.AsyncState。
倒數第二個參數CallBack是自己創建的回調函數,即在for循環每次執行完一次后,要執行的內容。

namespace _011_異步編程進階{    /*     * 總結:     * 1.異步編程是建立在委托的基礎上的一種編程方法。     * 2.異步調用的每個方法都是在獨立的線程中執行的。本質上就是一種多線程程序     * 3.比較適合在后臺運行較為耗時的簡單任務,并且任務之間相互獨立,不能有直接訪問可視化控件的代碼。     * 4.如果后臺任務要求必須按照特定順序執行,或者訪問共享資源,則異步不太適合,應選擇多線程。     */    public partial class 異步編程進階 : Form    {        //【1】聲明委托        private delegate int delCal(int num, int ms);        public 異步編程進階()        {            InitializeComponent();            //【3】初始化委托變量            //objCal = Task1;//與下方效果一樣,下面是用Lambda寫的            objCal = (num, ms) =>            {                Thread.Sleep(ms);                return num * 2;            };        }        //【2】根據委托編寫方法,返回一個數的計算值        #region 根據委托編寫方法               private int Task1(int num,int ms)        {            System.Threading.Thread.Sleep(ms);            return num * 2;        }        #endregion        //【3】創建委托變量,由于異步函數和回調函數都要用,因此定義為成員變量        private delCal objCal = null;        //【4】同時執行多個任務        private void button1_Click(object sender, EventArgs e)        {            //發布任務            //每次任務執行完后,要有執行完的標志,這個標志放到回調函數中            for (int i = 1; i < 10; i++)            {                //開始異步執行                //最后一個參數的值即為回調函數的AsyncState屬性值                IAsyncResult result = objCal.BeginInvoke(9 * i, 1000*i, CallBack, i);//當其執行完后自動執行某個函數,i的值就是IAsyncResult.AsyncState                //最后一個參數i給回調函數的字段AsyncState            }        }        //【5】回調函數        //回調函數,參數類型為IAsyncResult        //每個任務返回時,result都不一樣        private void CallBack(IAsyncResult result)        {            int res=objCal.EndInvoke(result);            //顯示異步調用結果            //MessageBox.Show($"第{result.AsyncState.ToString()}個計算結果為:{res}");            Console.WriteLine("第{0}個計算結果為:{1}", result.AsyncState.ToString(),res);        }    }}


閱讀原文:原文鏈接


該文章在 2025/3/28 11:32:35 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 91精品丝袜国产高 | 91午夜福利国产在线观看 | 国产日韩激情综合一区 | 高清无码不卡视频 | av在线免费不卡可看 | 国产av无码亚洲一区二区 | 国产成人精品福利网 | 精品人妻av中文字幕乱码 | 国产亚洲综合欧美视频 | 精品国产高清不卡人妻片 | 99久久精品美女高潮喷水 | 成在线人永久免费视频播放 | 国产高清a级毛片视 | 国产性爱精品亚洲色影视 | 国产精品三级av及在线观看 | av无码久久久久不卡蜜桃 | 国产精品影片在线观看 | 国产色片大全在线观看 | 国产av老女人 | 精品国产你懂的在线 | 国产亚洲欧美日韩综合一区二区 | 国产欧美日产丝袜精品 | 精品无码国产一区二区三区51安 | 国产精品一区第二页尤自在拍 | 成人在线观看免费爱爱 | av三级片在线 | 成人无码一区二区三区 | 国产1024精品视频专区 | 国产无码不卡在线观看 | 成人午夜爱爱 | 国产精品国内自产拍在线播放 | 国产91免费视频 | 国产麻豆放荡av | 99精品国产丝袜在线拍国语 | av无码精品久久 | av无码人妻精品 | 国产高潮流白浆喷水免费网站 | 国产在线精品成人一区二区三区 | 国产爆白浆水真多视频 | 国产美女视频一区二区二三区 | 国产浮力草草影院ccyy |