小编Fal*_*ine的帖子

在POST期间双击等待操作

使用c#HttpClient来发布数据,假设我也关注返回的内容.我正在优化我的应用程序并尝试在同一方法中了解两个等待调用的性能影响.从以下代码段中弹出的问题,

public static async Task<string> AsyncRequest(string URL, string data = null)
{
    using (var client = new HttpClient())
    {
        var post = await client.PostAsync(URL, new StringContent(data, Encoding.UTF8, "application/json")).ConfigureAwait(false);
        post.EnsureSuccessStatusCode();

        var response = await post.Content.ReadAsStringAsync();
        return response;
    }
}
Run Code Online (Sandbox Code Playgroud)

假设我在那里有错误处理:)我知道等待电话是昂贵的所以双等待引起了我的注意.

  • 在第一次await完成后,POST响应在内存中会更有效地直接返回结果,比如 var response = post.Content.ReadAsStringAsync().Result;
  • 在同一方法中进行两次await/async调用时有哪些性能考虑因素?
  • 以上代码是否会导致每个等待线程(2个线程),或者为返回的任务处理两个await调用的1个线程?

c# performance asynchronous async-await dotnet-httpclient

6
推荐指数
1
解决办法
492
查看次数

事件源与事件提供者

EventSourceEventProvider类之间的主要区别是什么?

我理解这两个类都是 ETW 的事件提供程序。如果两者之间没有关键差异,那么利弊是什么。

我使用 EventSource 类只是因为我在网上找到了更多示例/文档,而且实现通道支持似乎更直接(写入事件查看器中的默认通道 - 管理、操作、分析和调试),因为 EventRegister 类会自动创建清单(在此处描述)。

.net c# etw event-viewer

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