委托与异步调用

孤街浪徒 提交于 2020-01-24 02:01:36

    委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。与 C 中的函数指针不同,委托是面向对象的、类型安全的和保险的。委托的类型由委托的名称定义。下面的示例声明了一个名为 Del 的委托,该委托可以封装一个采用字符串作为参数并返回 void 的方法。

  public partial class Form2 : Form
    {

//申明委托
delegate void LockWindowDelegate(bool enabled);
//定义委托对象

private LockWindowDelegate _lockWindow;
 public Form2()
{
            InitializeComponent();
//对象初始化           

_lockWindow = new LockWindowDelegate(lochFunction);
}
  private void startAsyncButton_Click(object sender, EventArgs e)
        {

//异步调用1
            this.BeginInvoke(_lockWindow, true);
//异步调用2

             IAsyncResult iar= _lockWindow.BeginInvoke(true,null,null);
//停止调用            

 _lockWindow.EndInvoke(iar);
       
        }

 

 private void lochFunction(bool bol)
        {
            if (bol)
            {
                this.startAsyncButton.Enabled = false;
                this.cancelAsyncButton.Enabled = true;
            }
            else
            {
                this.startAsyncButton.Enabled = true;
                this.cancelAsyncButton.Enabled = false;
            }
        }
}

参加http://msdn.microsoft.com/zh-cn/library/2e08f6yc.aspx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!