【发布时间】:2015-07-13 14:42:22
【问题描述】:
我们有一个 WCF 服务(部署在 IIS 上),它对数据库进行昂贵的调用。它不使用任何类型的异步 peogramming (async\await)。
using (SqlDataAdapter adapter = new SqlDataAdapter())
{
using (SqlCommand command = new SqlCommand())
{
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "StoreProcedure_NAME"; //Takes 6 seconds
command.Connection = connection;
adapter.SelectCommand = command;
adapter.Fill(dataset);
return dataset;
}
}
现在,在 6 秒的等待时间内调用数据库的线程(我相信这是一个 wcf 线程池线程)会发生什么。该线程是阻塞并占用 CPU 周期还是处于等待状态(等待中断)?
【问题讨论】:
-
被阻塞的线程不占用CPU周期。
标签: c# multithreading wcf threadpool