我目前正在看一些基本上從文件中逐行讀取數據的代碼,並在每一行的WCF客戶端上調用適當的方法。我的代碼的問題是,新的客戶端爲每個操作即創建:調用WCF客戶端上的多個操作
function CallSomeOp(line)
{
using (var client = new Client()
{
client.SomeOp(line);
}
}
這似乎使客戶端關閉連接並重新打開該文件中的每一行一個新的這似乎是一筆大開銷。我想這樣做的是移動的功能外,進入初始化客戶端的創建,使多個操作被稱爲一個客戶端上,即:
using (var client = new Client())
{
for(var line in lines)
{
CallSomeOp(line, client);
}
}
但我不知道這是確定或不。在客戶端調用多個操作時是否存在一些問題,即最終是否會耗盡內存或某些內容?
感謝您的回答,我做了一個實驗與探查和使用單個實例減少運行時間從58秒到25左右。我不太瞭解WCF,但這似乎是一個快速勝利。 – avid 2012-02-06 11:56:37
你可以發佈一些你的服務代碼嗎?它有什麼作用?請注意,單個實例可能導致多個調用發生縮放問題。 – diggingforfire 2012-02-06 11:57:53
我無法發佈該服務的代碼,我不完全確定它做了什麼!它應該只是採取一些數據,並把它放在某個地方。使用客戶端的申請人是單線程的。 – avid 2012-02-06 12:05:02