我是c#線程世界的新手。我讀過有不同的方式來執行線程,如順序。在C#中進行線程調用
我的場景如下。哪一個更適合以下。
我有複雜的對象列表。我將分別爲每個對象[put的主體]調用PUT端點。列表中可能有1000個或更多的對象。我無法將所有對象都傳遞給一個對象,因此我必須在每次調用put對象時傳遞每個對象。這樣,如果有1000個對象,我必須分別撥打1000個電話。
每次撥打電話都是相互獨立的,而我必須存儲每次通話回覆的屬性。
我正在考慮將線程概念應用到上面,但不確定哪一個以及如何去做。
任何建議將不勝感激。
預先感謝。
根據以下評論, 將方法簽名放在此處並添加更多詳細信息。我有IEnumerable<CamelList>
。對於每個駱駝來說,我必須做出一個put請求調用,並從每個調用的響應中更新表格。我會寫一個新的方法來接受這個列表,並使用下面的2個方法來調用和更新表。我必須確保,我同時進行的呼叫次數不超過100次,並且我打電話的API可以每分鐘100次由同一用戶呼叫。
我們有一個方法 public Camel SendRequest(handler, uri, route, Camel); //basically takes all the parameters and provide you the Camel.
我們有一個方法public void updateInTable(Entity Camel); //updates the table.
首先,最早支持的.NET版本是4.5.2,其中使用'HttpClient'進行HTTP調用。其次,HttpClient的方法是* all *異步,例如'HttpClient.PutAsync()'將在後臺運行。你不需要使用線程來讓它們在後臺運行。你甚至可以寫'myUrlObjectPairss.Select(data => client.PutAsync(data.url,data.Content))。ToArray()'並行啓動所有調用 –
我的不好。我們正在使用c#6。我錯誤地添加了其他C#4之一。 – Vicky
@Vicky - 您添加的簽名中的類型不一致。沒有辦法,這是你的真實代碼。如果您需要幫助,請儘量讓我們儘可能輕鬆地回答。我們需要一個[mcve]。 – Enigmativity