在c#中线程化?

时间:2012-11-10 16:34:37

标签: c#

class Form1
{ 
    private void sendemail_Click(object sender, EventArgs e)
    {           
        totalproxy=10;

        for (int i = 0; i < totalproxy; i++)
        {
            ThreadStart ts1 = new ThreadStart(sendmail());
            Thread thread1 = new Thread(ts1);
            thread1.Start();
            while (thread1.IsAlive) ;
        }            

    }

    public void sendmail()
    {
        //some code goes here
    }
}   

给我一​​个错误,就是这里预期的方法名称

new ThreadStart(xxxxx);

sendmail()已写在那里。

2 个答案:

答案 0 :(得分:8)

替换

new ThreadStart(sendmail());

new ThreadStart(sendmail);

因为您不想调用方法,而是将方法委托给线程

答案 1 :(得分:1)

ThreadStart需要一个代理(http://msdn.microsoft.com/fr-fr/library/system.threading.threadstart(v=vs.80).aspx),它是一个函数地址,与另一个变量的地址完全相同。

在您的代码中,您使用sendmail而不是仅通过其名称ThreadStart ts1 = new ThreadStart(sendmail);

提供其地址