2014-03-19 38 views
0

我的查詢是我有一個方法,應該以特定的時間間隔與特定數量的線程在該間隔時間調用,然後在其下一次調用後保持空閒狀態。如何限制特定間隔的線程數?

要它更清晰,我提出以下示例代碼:

namespace ThreadTest 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
     Initialize Components(); 
     } 
    } 

    public void ExtractDatafromWebPage() 
    { 
     //Code for extracting data from web page using HTTPWebRequest and HTTPWebResponse class 
    } 

    private void btn1_Click(object sender, EventArgs e) 
    { 
    // On clicking the button the ExtractDatafromWebPage() method should be called with 5 threads at every 10 seconds. 
    } 
} 

現在我要求的方法應該是每隔10秒後,每次只有5個線程應該與之關聯的所謂這種方法,並應保持空閒,直到下一個10秒。這個過程將會持續不斷。

+0

請,不包括有關在問題的標題使用,除非它不會沒有很有意義語言信息。標籤用於此目的。 –

+0

你正在使用哪個.NET版本? – Alex

回答

0

你可以做類似的事情,如下圖所示,如果我正確地理解你的問題(因爲我不知道你所說的意思:「只有5個線程應該用這種方法有關」

如果你的意思是隻有五個線程應該輸入該方法,然後只需要一個計數爲'5'的信號量。

傳中,你需要生成的線程數,時間段等

private void btn1_Click(object sender, EventArgs e) 
     { 
      // On clicking the button the ExtractDatafromWebPage() method should be called with 5 threads at every 10 seconds. 
      Timer t = new System.Threading.Timer(
       () => 
       { 
        for (int i = 1; i <= 5; i++) 
        { 
         //you can use thread pool thread 
         new Thread(() => this.ExtractDatafromWebPage()).Start(); 
        } 
       }, null, 0, 10 * 1000); 
     } 
相關問題