私は、StartNewが作業が実際に行われている間にThreadPoolからのスレッドを使用し、待機していたときにそれを解放するという仮定の下にいました。例:StartNewは通話中にスレッドを保持していますか?
Task.Factory.Startnew() {
() => {
..
var dr = cmd.ExecuteReader();
while (dr.Read())
{
..
}
}
}
上記のcmd.ExecuteReader()は、実行に10分かかった非常に遅いストアドプロシージャです。私は、TPLがスレッドをプールに戻し、スレッド全体を保持しないと考えました。これは間違っていますか?そうでなければ、TPLの大きな利点は、バックグラウンドのワーカースレッドと言うことができます。 Stephen Toub's postを読んだ後、私の仮定は真実ではないと考え始めました。
ありがとう私はasp.net非同期操作を呼び出して、あなたがプールに戻るスレッドを解放することができますIO完了ポートを使用しているいくつかの関数を呼び出すと混乱しているね – coding4fun