2011-01-24 13 views
0

我有這樣的方法:WebRequests /迴應許多來電之後放慢

 private void sendSms(object url) 
    { 
     var Url = url.ToString(); 
     webRequest = WebRequest.Create(Url); 
     //   webRequest.BeginGetResponse(this.RespCallback, webRequest); 
     webResponse = webRequest.GetResponse(); 
     // End the Asynchronous response. 
     var stream = new StreamReader(webResponse.GetResponseStream()); 
     var response = stream.ReadToEnd().ToString(); 
     if (response.Contains(Config.ValidResponse)) 
     { 
      var queryString = HttpUtility.ParseQueryString(webRequest.RequestUri.Query); 
      OnMessageAccepted(this, new MessageAcceptedEventArgs(queryString["SN"], "n/a")); 
     } 
     else 
     { 
      OnMessageAccepted(this, new MessageAcceptedEventArgs("", "n/a")); 
     } 
    } 

我這樣調用

While (true) 
{ 
    Send(url); 
    sleep(400); 
} 

問題在循環中是數百個像500或600元話費的後夫妻如果我重新啓動應用程序,它的啓動速度如此之快,而且開始變慢,調用的性能會變得越來越慢!我想知道是否有緩衝區或緩存,我應該立即清除,以保持快速?

PS:我公司開發的服務器,以便即時通訊確保服務器犯規慢下來,再加上我試圖與不同類型的服務器上執行的是我公司開發和他人開發的。

在此先感謝。

+1

你好,如果你想進入睡眠不使用的睡眠(400),它會靜靜等待當前的進程,對於.NET文檔只有當你把睡眠(0),那麼其他進程可以使用你的處理器,否則只會等待,不會爲其他線程提供空間。 我希望這有助於。 – 2011-01-24 14:30:02

+0

我必須讓它等待我不能發送的郵件而不 – Stacker 2011-01-24 14:44:07

回答

1

您需要配置使用using塊的響應和響應流。