各位路过的大神,调用  类的方法触发 该类自身的事件,可以吗?
贴上源码,请指正,非常感谢!///
///自定义类Command
///
class Command
{
        private ArrayList result = new ArrayList();        //声明一个带参数的事件,参数为ArrayList型的数据
        public delegate void UpdaterEventHandler(ArrayList data);        public event UpdaterEventHandler Updater;        //触发事件
        public void OnUpdater(ArrayList data)
        {
            if (this.Updater != null)
            {
                this.Updater(data);
            }
        }        //在该类中定义一个触发事件的方法
        public void Update()
        {
            //触发事件
            OnUpdater(result);
        }
}
///
///调用
///     
        Command cmd = new Command();
        private void Form1_Load(object sender, EventArgs e)
        {
            //我是调用  类的方法触发 该类自身的事件,可以吗
            cmd.Updater += new ApiCmd.UpdaterEventHandler(BindDgv);
            cmd.Update();
        }
        //处理方法
        private void BindDgv(ArrayList data) 
        {
               /////////////////        }

解决方案 »

  1.   

    可以,但你这样有何意义?直接BindDgv(ArrayList data)不是更好吗?
      

  2.   

    Command类中包含一个 Thread线程,
    Update()方法为线程调用的方法,
    界面是被动更新的,主控权不在界面上,而在线程手上。
      

  3.   

    你的意思是让Command中的线程通知界面修改是吗?那你这个完全不合适啊。你现在的写法,必须界面调用cmd.Update()才会修改值,不调用的话,值就不会改变。
    主控权还是在界面上,只不过是让界面读取了一个Command的一个实时变量而已。
      

  4.   

    zhujiawei7,谢谢你的帮助,
    cmd.Update()只是在demo里这样描述,Update()为线程调用方法,界面上只要+=该事件的处理方法就好啊。