1
我正在使用.net HTTPClient使用POST REST API保存一些數據。該API的有效載荷大小約爲10 MB。我將數據分塊併爲每個塊調用此POST API。我主要有問題的方法:並行運行HttpClient POST
我打算創建HTTPClient的單個靜態實例,並將跨應用程序使用相同的實例。我應該怎麼做? (爲每個塊POST POST調用創建單例或新客戶端)
我想並行調用所有這些塊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"); } });
也許你設置爲true/false的布爾變量。其他任務可以檢查該變量並在必要時停止。 – SpiderPig
您也可以使用取消令牌來執行此操作。以下是一些示例代碼https://msdn.microsoft.com/en-us/library/dd321955(v=vs.110).aspx,此外,HTTPClient還有一個取消所有未決請求的方法。 https://msdn.microsoft.com/en-us/library/system.net.http.httpclient.cancelpendingrequests(v=vs.118).aspx – SpiderPig