销毁一个wcf线程

时间:2011-03-13 11:11:07

标签: multithreading wcf

我正在使用多线程wcf maxConcurrentCalls = 10.通过记录对我的服务的调用,我看到我的服务类中正在执行10个不同的线程,并且它们在以下调用中被重用。

我可以告诉WCF销毁/删除一个线程,以便在下次调用时创建一个新线程吗?

这是因为我有线程静态状态,我有时希望被清除(在意外的异常情况下)。我正在使用线程静态范围来获得性能。

1 个答案:

答案 0 :(得分:1)

WCF不会创建新线程。它使用线程池中的线程来处理请求。因此,当请求开始时,它会从此池中绘制一个线程来执行请求,并在完成后将线程返回到池中。 WCF使用下面的线程的方式是您不应该依赖的实现细节。您永远不应该在ASP.NET / WCF中使用Thread Static来存储状态。

在ASP.NET中,您应该使用HttpContext.Items并在WCF OperationContext中存储一些可在整个请求中使用的状态。

这是一个good blog post你可以看一下,这说明了一个很好的抽象方法。