委托可以理解為C或C++裡面的函數指針,調用委托其實是調用被委托的方法。
簡單的使用委托的步驟如下:
1.定義委托
// 定義委托使用關鍵字 delegate
private delegate void SetProgressBarValueDelegate(int value);
2.聲明委托
private SetProgressBarValueDelegate setProgressBarValue;
3.實例化委托
setProgressBarValue = new SetProgressBarValueDelegate(SetProgressBarValue1);
SetProgressBarValue1是被委托的方法名稱,參數類型要和委托的類型保持一致。其原型如下:
// 設置進度條1值
private void SetProgressBarValue1(int value)
{
pgProgressBar1.Value = value;
}
4.使用委托:
SetProgressBarValueMethod(setProgressBarValue);
// 設置進度條值
private void SetProgressBarValueMethod(SetProgressBarValueDelegate setProgressBarValueDelegate)
{
for (int i = 1; i <= 100; i++)
{
Application.DoEvents();
Thread.Sleep(50);
setProgressBarValueDelegate(i);
}
}
/* 此命令可告訴系統繼續處理用戶界面的其它事件,避免假死
* 等同於 Visual Basic 6.0 的 DoEvents()
* 等同於 易語言 的 處理事件() */
Application.DoEvents();
/* 此命令用於線程暫停(參數:毫秒)
* 此處用在主線程中,會導致假死,加暫停只為了看得更清楚 */
Thread.Sleep(50);