C# 回调机制

来源:互联网 发布:男主换脸的网络电影 编辑:程序博客网 时间:2024/05/17 18:13
C# 委托的回调机制

1.什么是回调函数

回调函数(callbackFunction),顾名思义,用于回调的函数。回调函数只是一个功能片段,由用户按照回调函数调用约定来实现的一个函数。

2.C#回调函数实现机制

⑴定义一个回调函数;

⑵提供函数实现的一方在初始化的时候,将回调函数的实现函数委托给调用者;

⑶当特定的事件或条件发生的时候,调用者使用委托调用回调函数对事件进行处理。

3. 回调机制应用

使用回调机制,可以为工作流实现扩展。 可以把工作流中需要用户干预的,或需要提供给用户的数据以回调的模式提供给用户。而用户不需要知道整个工作的流程,只需知道回调函数的说明就可以使用工作流模块提供的功能,这对信息的隐藏也是有作用的。


复制代码
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Threading; namespace CSharp_002_回调机制{    public partial class frmMain : Form    {        //定义回调        private delegate void SetProgressBar2ValueCallBack(int value);        //声明回调        private SetProgressBar2ValueCallBack setProgressBar2ValueCallBack;         public frmMain()        {            InitializeComponent();        }         private void btnStart_Click(object sender, EventArgs e)        {            //初始化回调            setProgressBar2ValueCallBack = new SetProgressBar2ValueCallBack(SetProgressBar2ValueMethod);              Thread progressBar2Thread = new Thread(SetProgressBar2Value);            progressBar2Thread.Start();             for (int i = 0; i <= 100; i++)            {                Application.DoEvents();                Thread.Sleep(50);                pgProgressBar1.Value = i;            }        }         //设置进度条2的值 的线程        private void SetProgressBar2Value()        {            for (int i = 0; i <= 100;i++ )            {                Thread.Sleep(50);                pgProgressBar2.Invoke(setProgressBar2ValueCallBack, i);            }        }        //设置进度条2的值 被委托的方法        private void SetProgressBar2ValueMethod(int value)        {            pgProgressBar2.Value = value;        }     }//end class frmMain}
复制代码

运行结果:

image

1 0
原创粉丝点击