小编sen*_*r k的帖子

Windows.Web.Http.HttpClient 抛出 COMException c#

Windows.Web.Http.HttpClient在我的 UWP Windows 10 应用程序中使用。我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();
            }
        }
Run Code Online (Sandbox Code Playgroud)

我使用 Tasks.Run() 创建多个线程并并行访问 httpClient。

c# windows parallel-processing comexception uwp

5
推荐指数
1
解决办法
333
查看次数

标签 统计

c# ×1

comexception ×1

parallel-processing ×1

uwp ×1

windows ×1