我们正在开发一个应用程序,其中UI调用服务(WCF)层,驻留在服务层内的组件异步调用外部Web服务。例如:UI发送表示通过上传文件调用WCF层,如果文件有1000个条目,则当前我们在循环中异步调用外部服务(BeginxxxMethod)1000次以进行响应。这是正确的方式吗?第二个问题:可以进行的最大异步连接数是多少?我们的技术是ASP.NEt和C#4.0。
答案 0 :(得分:1)
两个建议:
答案 1 :(得分:1)
这是正确的方法吗?
异步调用通常是完成大批量作业的最佳方法。我觉得这种方法看起来很好看。作为开发人员,通常我们的工作是看到切割新线程的位置不再优化响应时间。 Myles提到在服务周围使用包装器。我经常在一次调用1000个调用时这样做...调用几千个异步调用实际上会损害性能(在我的应用程序中),所以我创建了一次将调用分组几百个(异步)的功能,直到所有x - 完成了几千个电话。这给了我两全其美......我能够立刻找到异步电话的点数给我最好的表现并从那里开始。
就最大线程而言,它取决于资源,但这里有link解释默认值...我会在下面发布以方便
1023 in Framework 4.0 (32-bit environment)
32768 in Framework 4.0 (64-bit environment)
250 per core in Framework 3.5
25 per core in Framework 2.0
答案 2 :(得分:0)
我们通过实现任务并行库解决了这个问题。 下面是伪代码。
由于