我是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