2012-11-10 47 views
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 
    } 
} 

是給了我這個方法名在此預期線程在c#中?

new ThreadStart(xxxxx); 

sendmail()已經寫有錯誤。

+1

,你可以用它代替的的AutoResetEvent的「而(thread1.IsAlive)」 – Amitd

+1

我建議(如果你使用的是.NET 4.0+)使用TPL(任務並行庫),因爲它更容易使用和同步並行任務。你可以在這裏閱讀更多關於它:http://msdn.microsoft.com/en-us/library/dd460717.aspx – KroaX

回答

8

更換

new ThreadStart(sendmail()); 

new ThreadStart(sendmail); 

,因爲你不希望調用方法,但給的方法委託線程

+0

謝謝。現在好了:) – user1814773

+0

我已經做了一個Windows應用程序發送電子郵件在C#(.net )。但它開始掛起,並顯示沒有迴應 這裏有一個主要功能在測試文件中http://what-isonlinebanking.com/problem.txt 請看看,並給出一些建議,我怎麼能避免懸掛。 在此先感謝。 – user1814773

+1

@ user1814773不要在評論中提出新問題並閱讀本文http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –