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

Windows.Web.Http.HttpClient抛出COMException c#,c#,windows,parallel-processing,uwp,comexception,C#,Windows,Parallel Processing,Uwp,Comexception,我在我的UWP Windows 10应用程序中使用Windows.Web.Http.HttpClient。我已经在我的应用程序中创建了一个HttpClient实例,并为所有HTTP调用重新使用连接。除了并行HTTP调用之外,其他一切都正常工作 每当我初始化一个并行HTTP请求时,并行线程第一次抛出下面的COMException。我捕获这个异常并重新发送http调用,它成功了。过了一会儿,如果我再次启动并行线程,它会再次失败 引发异常:System.Private.CoreLib.dll中的“Sy

我在我的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


他们说,当一个人同时对同一个对象执行两个
async
操作时,就会发生异常。对我来说,这听起来很奇怪,但如果是这样的话,锁定应该会对您有所帮助。

发布您的代码。人们猜不出发生了什么或者为什么会失败。你在你的单例模式中使用了线程安全设计吗?是的。它是线程安全的。