C# 委託的回調機制

1.什麼是回調函數html

回調函數(callbackFunction),顧名思義,用於回調的函數。回調函數只是一個功能片斷,由用戶按照回調函數調用約定來實現的一個函數。函數

2.C#回調函數實現機制spa

⑴定義一個回調函數;線程

⑵提供函數實現的一方在初始化的時候,將回調函數的實現函數委託給調用者;code

⑶當特定的事件或條件發生的時候,調用者使用委託調用回調函數對事件進行處理。orm

3. 回調機制應用htm

使用回調機制,能夠爲工做流實現擴展。 能夠把工做流中須要用戶干預的,或須要提供給用戶的數據以回調的模式提供給用戶。而用戶不須要知道整個工做的流程,只需知道回調函數的說明就可使用工做流模塊提供的功能,這對信息的隱藏也是有做用的。blog


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

 

 

http://www.cnblogs.com/hanzhaoxin/archive/2013/02/18/2915275.htmlget

相關文章
相關標籤/搜索