2014-04-14 73 views
0

我不能在每3秒發出一個以上的請求,我正在使用Thread.Sleep()來限制我可以創建的請求數。有沒有更好的方法,而不必暫停線程?謝謝。由於服務器限制,每秒發出一個全局HTTP請求限制

static void main(string[] args) 
{ 
    // getids 
    List<string> requestIds = GetMyRequestIds(); 

    foreach(string requestId in requestIds) 
    { 
     Thread.Sleep(3000); 

     // one request for each Id 
     result = FetchStatus(requestId); 
    } 

} 

public Dictionary<string, object> FetchStatus(string requestId) 
{ 
    // build http request and query the server 
    // ... requestId... http... etc... read to end 
    return results; 
} 
+0

這是你的代碼,這樣你將有能力控制的頻率和/或多少請求發送。沒有一個「霸王」的過程會扼殺你的要求。 –

回答

0

如果您的限制是每3秒只有一個請求,您可以設置一個計時器,每3秒觸發一次回調。由於這是在單獨的線程中執行的,因此可能會同時執行兩個長時間運行的請求。

System.Threading.Timer