Cod*_*ked 6 c# asynchronous sql-server-2008
我目前正在将数据库存储过程调用转换为异步,利用async/await.与此处描述的方法类似.
基于这个答案,我想验证异步调用实际上是否正在使用I/O完成端口.如果它最终在等待来自ThreadPool的另一个线程,那么它实际上是在破坏转换呼叫的目的.
验证正在使用I/O完成端口的最佳方法是什么?它不仅仅是在另一个线程上阻塞?
WAITFOR DELAY '1:00:00'并行调用1000 次。如果使用的线程远少于 1000 个,则您将获得无线程 IO。您应该会看到几十个(其中包括由运行时和框架启动的许多实用程序线程)。
您还可以使用调试器进行中断并确保当前没有线程正在等待 IO。您可以从堆栈跟踪中看出。这适用于任何现有的应用程序。
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |