我有一个WCF服务,它为单个事务调用4个soap webservices(4个服务的总响应时间超过一分钟),最后它将在SQL 2008数据库中记录事务状态。我第一次使用后台工作程序,它工作正常,直到30个电话,如果我们增加超过30个电话的音量,那么后台工作程序进程被取消。现在我正在考虑使用多线程。对于我的情况,可以提出一些最好的asnyc方法。
答案 0 :(得分:1)
如果有那么多并发操作,切换到异步IO是有意义的。有多种型号可供选择。最好的一个显然是异步 - 等待与TPL的结合。我鼓励你抬头看看。
BackgroundWorker
给你带来麻烦的原因是因为同步IO使用了线程,而且你经常遇到一些非确定性限制。
在任何情况下,放弃基于线程的解决方案,因为它们在高度并行性方面存在问题。