至少在这里是不能加了,让funcname调用其他带参数的函数吧。

解决方案 »

  1.   

    新建线程是用的funcname只能是不带参数的代理。不过可以用间接的方法传递参数。
    我用过的一种方法是:定义一个对象,这个对象有一个方法是要用来建立线程的func,有若干的属性是要传给func的参数。
    建立线程时先建立这个对象,把参数传递给对象属性,在建立运行func的线程。
    如:
    1.定义一个类
     ProcessMessage是用来建立线程的那个function
      message是要象ProcessMessage传递的参数
    public class Processer
    {
    private Message message;

    public Processer(Message m)
    {
    message = new Message();
    message = m;
    } public void ProcessMessage()
    {
    //在这里写对message进行处理的code
    }
    }2.建立线程:
     Processer processer = new SWLogProcesser(m);
     Thread processThread = new Thread(new ThreadStart  (processer.ProcessMessage));
     processThread.Start();
      

  2.   

    用一个类也可以。
    也可以用线程池.
    比如如下。
    for (int i=UD1;i<=UD2;i++)//全部扫完后停止
    {
    ThreadPool.QueueUserWorkItem(new WaitCallback(Scan),i); //带参传送给线程函数
    Application.DoEvents ();
    } 就把参数i,传送给线程函数Scan了。