有这样一个问题
public void aaa(int a)
{
    MessageBox.Show((a*2).ToString());
}
private void Form1_Load(object sender, System.EventArgs e)
{
    Thread th = new Thread(new ThreadStart());// 这里这么把aaa这个用线程启动啊。
    
}
我Thread th = new Thread(new ThreadStart(aaa(5)));//这样怎么不可以啊。编译就出错了

解决方案 »

  1.   

    ThreadStart
    的委托类型是无返回值和参数的函数.
      

  2.   

    ThreadStart不支持参数传入
    你可以通过创建一个类的方式来实现传入参数的目的,
    参数在调用构造函数的时候传入即可
      

  3.   

    public class aaaClass
    {
    private int a;
    private Thread theThread ; 
    private aaaClass(int a)
    {
      this.a =a;
      theThread = new Thread(new ThreadStart(aaa));
    }
    public Thread TheThread 
    {
    get{return theThread;}
    }
    public void aaa()
    {
        MessageBox.Show((a*2).ToString());
    }
    }private void Form1_Load(object sender, System.EventArgs e)
    {
        aaaClass th = new aaaClass(5);// 这里这么把aaa这个用线程启动啊。
        th.TheThread.Start();
        
    }
      

  4.   

    构造函数写错了 改为public 呵呵 不好意思