Thread m_Thread1 = new Thread(new ParameterizedThreadStart(m_channelBase.Run));
m_Thread1.Start(true);这个m_channelBase的RUN方法的定义:public abstract void Run(bool debug);
为什么我在编译的过程中出现这个错误?
Error 1 No overload for 'Run' matches delegate 'System.Threading.ParameterizedThreadStart'm_channelBase是实现类,里面重写了RUN方法,但是为什么会有这样的问题,请各位帮忙分析一下,多线程编程我第一次用,是不是调用的方式不对啊?

解决方案 »

  1.   

    m_channelBase.Run 你这个也不是参数啊
      

  2.   


     public Monitor(string monitorip, int port)
            {
                this.Serverip = monitorip;
                this.Serverport = port;
            } public void MonitotThread()
            {
           SMS sms = new SMS(Serverip);
                        Thread t = new Thread(new ThreadStart(sms.MonitotThread));
    }
      

  3.   

    我没有看明白,m_channelBase.Run这个不是方法名吗?
      

  4.   

    m_channelBase的类里面加一个run的wrapper方法
    public void RunWrapper(object debug)
    {
      bool b = (boole)debug;
      this.Run(b);
    }然后
    Thread m_Thread1 = new Thread(new ParameterizedThreadStart(m_channelBase.RunWrapper));
      

  5.   

    有参数的线程方法应该写:
    public abstract void Run(object debug);
      

  6.   

    参数必须为object类型是不是啊?