2012-04-18 59 views
2

我想编写代码尽可能快速和可靠地导入一堆数据。使用线程我已经能够加速我在本地机器上显着写入的导入代码,但是当我在远程服务器上运行它时,它似乎有一些WCF问题...2 WCF服务和c#线程

我有两个WCF服务实现: Service1和Service2。

基本上这是工作流:

Parallel.ForEach(objectData.Tables[0].Rows.Cast<DataRow>(), dataRow => 
{ 
... 
    Service1.ImportObjectFirstPart(ObjectToEnter); 
... 
    Service2.ImportObjectSecondPart(ObjectToEnter); 
} 

Service1的呼叫需要大约3秒,和服务2远程或本地需要大约7秒。但是,在我的本地计算机上,大约20次service1调用后,service2启动。在服务器上,几乎每个service1呼叫都在第一个service2呼叫开始之前完成。 (这两项服务均以PerCall的形式实施)。

调用服务的代码在一段时间内按预期使用99%的CPU,然后放慢抓取速度,然后我必须自行退出它。任何想法可能会出错?

感谢,

+2

这是什么问题? – 2012-04-18 19:57:41

+0

看起来Service2正在等待Service1在开始之前完成所有呼叫,并且我很好奇为什么会这样。 – Kyle 2012-04-18 20:00:37

+0

每个[这个答案](http://stackoverflow.com/a/3969440/238688)到一个类似的问题,这些服务的并发模式是什么? – 2012-04-18 20:07:13

回答