我的应用程序是一个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();
}
}