日期:2014-05-17  浏览次数:20992 次

怎么判断一个线程已经绑定一个方法了?


public class test
{
        BackgroundWorker _Init = new BackgroundWorker();

        public void CarouselInit()
        {

                _Init.DoWork += new DoWorkEventHandler(_DoWork_Init);
                _Init.RunWorkerAsync();
           
        }

        void _DoWork_Init(object sender, DoWorkEventArgs e)
        {

        }

}




如上代码,当第二次调用CarouselInit()时,_DoWork_Init会被执行两次,那么,该怎么判断_Init.DoWork已经绑定了一个方法呢?

请大侠们教诲教导啊!


------解决方案--------------------
加一个全局变量
private bool bInited=false;


public class test
{
        BackgroundWorker _Init = new BackgroundWorker();
        private bool bInited=false;
        public void CarouselInit()
        {

                if(!bInited)
                 { 
                    bInited=true;
                    _Init.DoWork += new DoWorkEventHandler(_DoWork_Init);
                 }
                _Init.RunWorkerAsync();
           
        }

        void _DoWork_Init(object sender, DoWorkEventArgs e)
        {

        }

}

------解决方案--------------------
http://blog.csdn.net/jinjazz/article/details/2514108
------解决方案--------------------
哥们 你不会在构造时候来注册方法啊
------解决方案--------------------
http://www.cnblogs.com/lujin49/archive/2012/02/23/2364185.html