【发布时间】:2012-04-28 01:06:57
【问题描述】:
我假设 StartNew 仅在实际完成工作时使用 ThreadPool 中的线程,并在等待时释放它。例如:
Task.Factory.Startnew() {
() => {
..
var dr = cmd.ExecuteReader();
while (dr.Read())
{
..
}
}
}
所以说上面的 cmd.ExecuteReader() 是一个非常慢的存储过程,需要 10 分钟才能运行。我认为 TPL 会将线程释放回池中,而不是一直保留线程。这是不正确的吗?如果不是,那么 TPL 方法的最大优势是说后台工作线程。阅读Stephen Toub's post 后,我开始认为我的假设不正确。
【问题讨论】:
标签: .net asynchronous threadpool task-parallel-library