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 }
運行結果:
http://www.cnblogs.com/hanzhaoxin/archive/2013/02/18/2915275.html