我创建线程时调用了一个函数,是不带返回值得,但是有一个参数,调用时加了一个参数,调试错误,说应输入方法名称,将参数去掉,又肯定不对?请问怎样改正,说下思路就行
string filename="e:1.doc";
Thread mythread =new Thread (new ThreadStart(MyThreadProc(filename)));
...
private void MyThreadProc(string path)
{...}
错误:应输入方法名称

解决方案 »

  1.   

    Thread mythread =new Thread (new ThreadStart(MyThreadProc())); 
    private void MyThreadProc()
     filename可以用一个public类型,这样不会出错
      

  2.   

    我在private void MyThreadProc(string path) 函数中有一个函数需要用到path传递过来的值,如果设为公共变量的话,多个线程访问是会报错的,所以不能用public
      

  3.   

    public static void MyThreadProc(object data)Thread mythread =new Thread (new ParameterizedThreadStart(MyThreadProc)); object在函数中再转成string使用
      

  4.   

    string filename="e:\\1.doc"; 
      

  5.   

    五楼,那我要的filename参数怎么传进取?
      

  6.   

    void work(object data)
    {
        string fileName = (string)data;
    }new Thread(new ParameterizedThreadStart(work)).Start(@"e:\1.doc");
      

  7.   

    Thread mythread =new Thread (new ThreadStart(MyThreadProc(filename))); 
    后面用的是一个委托,只能有方法签名,不能有参数
    new Thread (new ThreadStart(MyThreadProc)); 
      

  8.   


    支持,设置回调函数是只能写函数名的
    ParameterizedThreadStart(MyThreadProc),参数另外指定
      

  9.   

    最后附本人的代码,不知道还有什么地方需要改正的地方,请指教:
    {
    string filename="e:\\1.doc";
    Thread mythread =new Thread (new ParameterizedThreadStart(MyThreadProc)); 
    myThread.start(filename);
    }
    private void MyThreadProc(object data)
    {
    输出:"convert.tostring(data)";
    }