C#多线程CPU使用率100%

时间:2013-11-29 09:33:11

标签: c# asp.net multithreading cpu-usage

我的应用程序是一个asp.net Web服务。在同一服务器中还有一个Windows服务破坏,并按指定的时间间隔触发Web服务。

因此,在每个Web服务调用中,在Web服务器端,它创建一个新线程并开始执行Web服务假设要执行的任务。

有时,在下一次Web服务调用到来之前,此启动的线程无法完成分配的任务。因此,下一个Web服务调用会创建相同类型的新线程,并为新线程分配新任务。

因此,如果我在繁忙的情况下检查服务器,有时会有20多个并行线程毁坏。

每件事都很好。但是服务器(Windows 2003 sp2)看起来没有响应。因此,我在任务管理器中检查CPU性能,当Web服务开始工作时,它显示100%。即使只有1,2个线程同样的事情发生。

我觉得有些不对劲。我做的事情在概念上是错误的。感谢一些建议。

修改

public class EmailPrinter : System.Web.Services.WebService

  public void webServiceMethod()
  {
      Thread email_thread = new Thread(new ThreadStart(this.downloadEmails));
      email_thread.Start();
  }   

  private void downloadEmails(object sender, DoWorkEventArgs e)
  {
    EmailService.init(); 
    EmailService.ReceiveEmail();
  }

}

0 个答案:

没有答案
相关问题