不带参数,可定义public或者protected变量。如1

解决方案 »

  1.   

    public delegate void ThreadStart();
    ThreadStart 委托既没有参数也没有返回值。这意味着不可以使用需要参数的方法启动线程,或从方法中获得返回值。
      

  2.   

    可以的:是用类的成员函数作为线程入口函数,那么就可以使用该类的成员变量了。
    这样就可以为线程储存参数,供调用。
    class myThread
    {
      public int p1;
      public string p2;
      public myThread(){}
      public void ThreadStartPoint()
      {
         // use p1 & p2;
         return ;
      }
    }//调用:
    myThread t = new myThread();
    t.p1 = 0;
    t.p2 = "ddd";
    m_thread = new Thread(new ThreadStart(t.ThreadStartPoint));
    m_thread.Start();
      

  3.   

    public delegate void ThreadStart(); 是没错的! greenery(greenery) ,你的代码正确率有多高?
      

  4.   

    可以变通的来带参数嘛。
    public class MyThreadClass
    {
       public int paramA;
       public int paramB;
       public void Process()
       {
         .... paramA; ... paramB; ...
        }
       public void StartThread(int a, int b)
       {
         paramA = a; paramB = b;
         Thread th = new Thread(Process);
         th.Start();
       }
    }public void ...()
    {
      MyThreadClass thdCls = new MyThreadClass();
      thdCls.StartThread(10, 20);
    }
      

  5.   

    这有什么奇怪的呢?线程如果到创建它的过程外边才star,那么它怎么取得当前的参数呢?使用线程,最好将它封装在一个类内部。这个类就像普通的类一样,完成特定的业务。但是,当外部引用它的接口时,是“立刻”成功返回的——线程被隐藏在类内部实现。向线程传递参数,实际上被封装为这个类的公共属性或者变量;线程向调用者返回结果,是利用事件。