[英]How to reduce the execution time in C# while calling an API?
我正在創建一個Windows應用程序(使用Windows窗體應用程序),該應用程序調用Web服務來獲取數據。 在數據中,我必須獲取200多個客戶端信息,並且對於每個客戶端,我必須獲取所有用戶信息。 一個客戶端可以有50到100個用戶。 因此,我正在循環(獲取所有客戶端列表之后)中的Web服務,以使每個客戶端獲取用戶列表。 這是一個漫長的過程。 我想減少整個過程的執行時間。 因此,請建議我哪種方法可以幫助減少執行時間,目前一次獲取數據最多需要40-50分鍾。 讓我知道最適合我的應用程序的任何解決方案,例如多線程或其他任何東西。
提前致謝。
如果您可以控制Web服務,那么有一種方法可以一次返回所有客戶端,而不是一個一個地返回所有客戶端,從而避免邁克爾建議的漫游。
如果沒有,請確保同時(不按順序)發出盡可能多的請求,以避免盡可能多的延遲。 對於每個請求,您將至少有1次往返(因此,至少ping的價值值得延遲),如果發出150個請求,則將ping到服務器X 150價值“僅在網絡上等待”。 如果將這些請求分成4個串,並並行執行每個串,那么您將只等待150/4 * ping時間。 因此,您同時執行的請求越多,等待的時間就越少。
如果您無法控制Web服務,則可以嘗試使用Parallel.ForEach循環而不是ForEach循環來查詢Web服務。
MSDN提供了有關如何使用它的教程: http : //msdn.microsoft.com/zh-cn/library/dd460720(v=vs.110).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.