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