1
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()、すでにそこに書かれています。

4

2 に答える 2

8

交換

new ThreadStart(sendmail());

new ThreadStart(sendmail);

メソッドを CALL したくないが、メソッドデリゲートをスレッドに渡すため

于 2012-11-10T16:36:43.117 に答える
1

ThreadStart にはデリゲート ( http://msdn.microsoft.com/fr-fr/library/system.threading.threadstart(v=vs.80).aspx ) が必要です。これは関数アドレスであり、別の変数のアドレスとまったく同じです。

コードでは、名前でアドレスを指定する代わりに sendmail を使用します。ThreadStart ts1 = new ThreadStart(sendmail);

于 2013-01-10T21:01:37.153 に答える