2011-01-24 31 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块的响应和响应流。