我正在使用委托(delegate)来处理WCF服务中的请求处理的多线程应用程序。我希望客户端能够发送请求,然后断开连接并等待回调以宣布工作已完成(这很可能正在通过数据库进行搜索)。我不知道一次可以收到多少个请求,它可能不时发出一次,或者可能激增到几十个。

据我所知,.Net的线程池有25个可用线程。当我产生25个或更多代表时会发生什么?它会引发错误,是否等待,是否暂停现有操作并开始处理新委托(delegate),还是出现其他行为?

除此之外,如果我想在启动其他操作(例如传入/传出连接)的同时又要启动最多25个或更多的代表,并且/或者当另一个操作正在起作用并且我想产生另一个代表时,会发生什么呢?

我想确保这是可扩展的,而又不会太复杂。

谢谢

最佳答案

所有操作都排队(我假设您正在直接或间接使用线程池)。线程池的工作是遍历队列并将操作分派(dispatch)到线程上。最终,所有线程可能都变得繁忙,这仅意味着队列将增长,直到线程有空开始处理排队的工作项为止。

关于c# - 在C#.Net中使用委托(delegate),当我用完.Net线程池中的线程时会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4247826/

10-14 10:42