【发布时间】:2016-12-07 16:53:11
【问题描述】:
我正在使用 .net HTTPClient 使用 POST REST API 保存一些数据。此 API 的有效负载大小约为 10 MB。我将我的数据分成块并为每个块调用这个 POST API。我主要对方法有疑问:
我计划创建 HTTPClient 的单个静态实例,并将跨应用程序使用相同的实例。我的方法应该是什么? (为每个块 POST API 调用创建单例或新客户端)
-
我想并行调用所有这些块 POST 调用(在 .net 中使用 TASKS)。如果任何一项任务失败,是否有任何方法可以停止剩余任务。我正在寻找一些示例代码。
_factory = new TaskFactory(); _factory.StartNew(() => //Call to async POST API using HttpClient ).ContinueWith((response) => { if (!response.IsFaulted) { //Do something } else { this._logger.Error("log the error"); } });
【问题讨论】:
-
可能是您设置为真/假的布尔变量。然后其他任务可以检查该变量并在必要时停止。
-
您也可以使用取消令牌来执行此操作。这是一些示例代码msdn.microsoft.com/en-us/library/dd321955(v=vs.110).aspx,HTTPClient 也有一个取消所有挂起请求的方法。 msdn.microsoft.com/en-us/library/…
标签: c# .net task dotnet-httpclient