gpt4 book ai didi

c# - 如何验证我的 async/await 是否正在使用 I/O 完成端口?

转载 作者:太空狗 更新时间:2023-10-29 21:50:32 24 4
gpt4 key购买 nike

我目前正在将数据库存储过程调用转换为异步调用,利用 async/await。类似于描述的方法here .

基于 this answer ,我想验证异步调用实际上是在使用 I/O 完成端口。如果它最终等待来自 ThreadPool 的另一个线程,那么它实际上违背了转换调用的目的。

验证 I/O 完成端口是否正在使用并且它不是简单地阻塞在另一个线程上的最佳方法是什么?

最佳答案

并行调用 WAITFOR DELAY '1:00:00' 1000 次。如果使用的线程远少于 1000 个,则您将获得无线程 IO。您应该会看到几十个(其中包括许多由运行时和框架启动的实用程序线程)。

您还可以中断调试器并确保当前没有线程正在等待 IO。您可以从堆栈跟踪中看出。这适用于任何现有应用程序。

关于c# - 如何验证我的 async/await 是否正在使用 I/O 完成端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18740114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com