我正在制作一个使用委托来处理WCF服务中的请求处理的多线程应用程序。我希望客户端能够发送请求,然后断开连接并等待回调来宣布工作已完成(这很可能是通过数据库搜索的)。我不知道一次可能会有多少请求,它可能每隔一段时间就会有一次,或者可能会达到几十次。在C#.Net中使用委托,当我用完.Net线程池中的线程时会发生什么?
据我所知,.Net的线程池有25个线程可供使用。当我派出25位或更多代表时会发生什么?它是否会抛出错误,是否等待,是否暂停现有操作并开始处理新委托或其他某些行为?
除此之外,如果我想在其他操作(例如传入/传出连接)想要启动时产生多达25个代表或者另一个操作正在工作并且我想产生另一个操作代表?
我想确保这是可扩展的,而不是太复杂。
感谢
如果您使用WCF,那么您没有2.0的RTM版本的.NET。限制是250 x CPU核心数量。 – 2010-11-22 17:12:07
我的意思是关注线程(以及我如何访问它们)是通过使用BeginInvoke的委托来调用通常的同步方法。性能瓶颈很可能是响应者客户端正在做它的事情(等待数据库搜索),然后可能会返回大量的数据以及将它通过互联网发送到中央代理服务所需的时间,然后返回给请求的客户。 – 2010-11-22 17:15:39
我目前正在使用.Net 3.5进行开发,但如果看起来它提供了我的应用程序所需的功能/性能(特别是WCF),我可能会移至4.0。 – 2010-11-22 17:53:33