国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C#回調(diào)函數(shù)學(xué)習(xí)1

這篇具有很好參考價(jià)值的文章主要介紹了C#回調(diào)函數(shù)學(xué)習(xí)1。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

回調(diào)函數(shù)(Callback Function)是一種函數(shù)指針,它指向的是由用戶自己定義的回調(diào)函數(shù)。我們將這個(gè)回調(diào)函數(shù)的指針作為參數(shù)傳遞給另外一個(gè)函數(shù),在這個(gè)函數(shù)工作完成后,它將通過這個(gè)回調(diào)函數(shù)的指針來回調(diào)通知調(diào)用者處理結(jié)果。

? ? 此定義來自網(wǎng)上;

看一個(gè)例子;這是用委托實(shí)現(xiàn)的回調(diào)函數(shù);

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace myhd1
{
    public partial class Form1 : Form
    {
        private delegate void MyDelegate(int a);  //定義一個(gè)委托類型

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            myFuncWithCallback(15, new MyDelegate(MyCallBack));
        }

        private void myFuncWithCallback(int b, MyDelegate callback)
        {
            int result = b * b;
            callback(result);
        }

        private void MyCallBack(int n)
        {
            textBox1.Text = n.ToString();
        }
    }
}

private delegate void MyDelegate(int a);?

? ? 定義一個(gè)委托,無返回值,有一個(gè)整型參數(shù);

myFuncWithCallback是一個(gè)用戶定義函數(shù),一個(gè)帶有回調(diào)函數(shù)的函數(shù);

MyCallBack(int n)

{

.......

}

? ? 這是回調(diào)函數(shù)體;

new MyDelegate(MyCallBack),這是實(shí)例化委托;

單擊按鈕時(shí)調(diào)用了myFuncWithCallback,然后也會(huì)執(zhí)行回調(diào)函數(shù);

運(yùn)行如下;

C#回調(diào)函數(shù)學(xué)習(xí)1,.Net,回調(diào)函數(shù),EnumWindows,異步

假設(shè)不用回調(diào)函數(shù);代碼是如下,

public partial class Form1 : Form
? ? {
? ? ? ? public Form1()
? ? ? ? {
? ? ? ? ? ? InitializeComponent();
? ? ? ? }

? ? ? ? private void button1_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? myFuncWithCallback(15);
? ? ? ? }

? ? ? ? private void myFuncWithCallback(int b)
? ? ? ? {
? ? ? ? ? ? int result = b * b;
? ? ? ? ? ? MyCallBack(result);
? ? ? ? }

? ? ? ? private void MyCallBack(int n)
? ? ? ? {
? ? ? ? ? ? textBox1.Text = n.ToString();
? ? ? ? }
? ? }

?功能也是一樣;

但是使用回調(diào)函數(shù)實(shí)現(xiàn)了異步;myFuncWithCallback和MyCallBack之間是異步的;

異步是什么?

異步

? ? 不用等所有操作等做完,就可以做其他的處理(比如發(fā)消息,發(fā)完后,我不需要等你回復(fù),就可以做其他處理)

同步

  必須等所有的操作都做完,才返回給用戶結(jié)果;

再看一個(gè)例子;枚舉窗口,

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace myhd2
{
    public partial class Form1 : Form
    {
        public delegate void CallBack(int hwnd, int lParam);

        [DllImport("user32")]
        public static extern int EnumWindows(CallBack x, int y);

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            CallBack myCallBack = new CallBack(Report);
            EnumWindows(myCallBack, 0); 
        }

        private void Report(int hwnd, int lParam)
        {
            textBox1.Text += "Window handle is " + hwnd.ToString() + ";" + Environment.NewLine;
        }  
    }
}

Win32 api的EnumWindows函數(shù)枚舉所有屏幕上的頂層窗口,并將窗口句柄傳送給應(yīng)用程序定義的回調(diào)函數(shù);運(yùn)行如下;
?

C#回調(diào)函數(shù)學(xué)習(xí)1,.Net,回調(diào)函數(shù),EnumWindows,異步
?

枚舉和打印輸出是異步的;?文章來源地址http://www.zghlxwxcb.cn/news/detail-709605.html

到了這里,關(guān)于C#回調(diào)函數(shù)學(xué)習(xí)1的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 巧用回調(diào)函數(shù)解決微信小程序與后臺(tái)數(shù)據(jù)交互出現(xiàn)的異步問題

    巧用回調(diào)函數(shù)解決微信小程序與后臺(tái)數(shù)據(jù)交互出現(xiàn)的異步問題

    ????????微信小程序端需要發(fā)送一個(gè)包含文字與圖片的表單數(shù)據(jù)給后端,我一開始的思路是 先 上傳圖片得到臨時(shí)的URL, 后 執(zhí)行POST請(qǐng)求將表單數(shù)據(jù)發(fā)送給后端,但后端只能獲取到文字,而圖片URL卻始終獲取不到。 ????????注意看我上面的思路, 一先一后 ,無形中將兩

    2024年02月16日
    瀏覽(30)
  • vue js 回調(diào)函數(shù) 異步處理 為什么要 let that = this

    1?異步就是開個(gè)事務(wù)( 只有主線程 等主線程空閑 ),用that 值 做處理,然后返回處理結(jié)果,而that的值是開啟 事務(wù)那一刻 的this的值.而在主線程處理的時(shí)候,this的一直在變化, that的值保留在那一刻 ps 或是將本obj 傳遞給其他的obj使用處理 ps 開啟新事務(wù)或開啟新子線程都是 在新的ob

    2024年02月11日
    瀏覽(21)
  • C# 中的回調(diào)函數(shù)

    引言 回調(diào)函數(shù)是一種在編程中常用的概念,它在 C# 中扮演著重要的角色。本文將介紹回調(diào)函數(shù)的概念、語法和應(yīng)用,并討論如何設(shè)計(jì)優(yōu)化和重用回調(diào)函數(shù),以及它們?cè)诓l(fā)編程中的用途。 回調(diào)函數(shù)是指將一個(gè)函數(shù)作為參數(shù)傳遞給另一個(gè)函數(shù),并在被調(diào)用函數(shù)執(zhí)行完畢后,再

    2024年02月20日
    瀏覽(27)
  • JUC并發(fā)編程學(xué)習(xí)筆記(十四)異步回調(diào)

    JUC并發(fā)編程學(xué)習(xí)筆記(十四)異步回調(diào)

    Future設(shè)計(jì)的初衷:對(duì)將來的某個(gè)事件的結(jié)果進(jìn)行建模 在Future類的子類中可以找到CompletableFuture,在介紹中可以看到這是為非異步的請(qǐng)求使用一些異步的方法來處理 點(diǎn)進(jìn)具體實(shí)現(xiàn)類中,查看方法,可以看到CompletableFuture中的異步內(nèi)部類,里面是實(shí)現(xiàn)的異步方法 以及一些異步方法

    2024年02月05日
    瀏覽(19)
  • 【C#進(jìn)階】C#中的委托、事件、回調(diào)函數(shù)、匿名函數(shù)和lambda表達(dá)式

    委托是一種類型,它可以存儲(chǔ)對(duì)一個(gè)或多個(gè)方法的引用。它類似于C/C++中的函數(shù)指針,允許您將方法作為參數(shù)傳遞、存儲(chǔ)和調(diào)用。 寫法: delegate return_type delegate_name( ); return_type :表示委托所引用方法的返回類型。 delegate_name :表示委托的名稱。 parameters :表示委托所引用方法

    2024年02月06日
    瀏覽(21)
  • Node.js 學(xué)習(xí)系列(四)—— 回調(diào)函數(shù)

    Node.js 學(xué)習(xí)系列(四)—— 回調(diào)函數(shù)

    Node.js 異步編程的直接體現(xiàn)就是回調(diào)。 異步編程依托于回調(diào)來實(shí)現(xiàn),但不能說使用了回調(diào)后程序就異步化了。 回調(diào)函數(shù)在任務(wù)完成后就會(huì)被調(diào)用, Node 使用了大量的回調(diào)函數(shù), Node 的所有 API 都支持回調(diào)函數(shù)。 例如,我們可以一邊讀取文件,一邊執(zhí)行其他命令,在文件讀取完

    2024年02月05日
    瀏覽(19)
  • Baumer工業(yè)相機(jī)堡盟工業(yè)相如何使用BGAPISDK通過兩種不同的方法進(jìn)行圖像回調(diào)函數(shù)的使用(C#)

    ? Baumer工業(yè)相機(jī)堡盟相機(jī)是一種高性能、高質(zhì)量的工業(yè)相機(jī),可用于各種應(yīng)用場(chǎng)景,如物體檢測(cè)、計(jì)數(shù)和識(shí)別、運(yùn)動(dòng)分析和圖像處理。 Baumer的萬兆網(wǎng)相機(jī)擁有出色的圖像處理性能,可以實(shí)時(shí)傳輸高分辨率圖像。此外,該相機(jī)還具有快速數(shù)據(jù)傳輸、低功耗、易于集成以及高度

    2024年02月08日
    瀏覽(21)
  • 【opencv學(xué)習(xí)】鼠標(biāo)回調(diào)函數(shù)、鼠標(biāo)控制畫矩形

    1.回調(diào)函數(shù)可以簡單理解為一邊做一件事的同時(shí)做另一件事,優(yōu)化之前的實(shí)現(xiàn)完一個(gè)函數(shù)后才實(shí)現(xiàn)另一個(gè)的問題。 鼠標(biāo)回調(diào)函數(shù)就是一邊鼠標(biāo)操作畫圖,一邊顯示畫出的圖像。 2.實(shí)現(xiàn)一個(gè)矩形rec只需要知道一個(gè)左上角的坐標(biāo)和寬高即可實(shí)例化對(duì)象。

    2024年02月14日
    瀏覽(93)
  • C#基礎(chǔ)學(xué)習(xí)--異步編程

    C#基礎(chǔ)學(xué)習(xí)--異步編程

    目錄 什么是異步 async/await 特性的結(jié)構(gòu) ?什么是異步方法 ?異步方法的控制流 await 表達(dá)式 啟動(dòng)程序時(shí),系統(tǒng)會(huì)在內(nèi)存中創(chuàng)建一個(gè)新的 進(jìn)程 。進(jìn)程是構(gòu)成運(yùn)行程序的資源的集合。進(jìn)程是構(gòu)成運(yùn)行程序的資源的集合。這些資源包括虛地址空間,文件句柄和許多其他程序運(yùn)行所需

    2023年04月25日
    瀏覽(27)
  • c# 學(xué)習(xí)筆記 - 異步編程

    1.1 簡單介紹 ? 異步編程官方參考文檔:異步編程 ? ? 1.2 async/await 使用 ? 細(xì)節(jié)注意 async 用來修飾方法,表示這個(gè)方法可以成為一個(gè)異步方法,但是如果內(nèi)部沒有搭配使用 await 的話其作用還是等效于一個(gè)同步方法 await 必須用于在 async 修飾的異步方法內(nèi)使用,

    2024年01月18日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包