我在我的UWP Windows 10应用中使用Windows.Web.Http.HttpClient
。我在我的应用程序中创建了HttpClient
的单个实例,并为所有HTTP调用重新使用连接。除了并行HTTP调用之外,一切正常。
每当我发起并行HTTP请求时,第一次并行时线程抛出下面的COMException。我捕获此异常并重新发送http调用并成功。过了一会儿,如果我开始并行线程,它再次失败。
抛出异常:System.Private.CoreLib.dll中的'System.Runtime.InteropServices.COMException'
WinRT信息:并发或交错操作改变了对象的状态,使此操作无效。
尝试冲浪并无法获得解决方案。有没有人遇到这个问题并得到解决方案?
以下是代码示例:
httpClient是一个可重复使用的实例。
var response = await httpClient.SendRequestAsync(reqMsg).AsTask(cts.Token); if (response.IsSuccessStatusCode) { if (isBufferResponseRequired) { return await response.Content.ReadAsBufferAsync(); } else { return await response.Content.ReadAsStringAsync(); } }
我使用Tasks.Run()创建多个线程并并行访问httpClient。