我讀過在ASP.NET Web應用程序中使用Task.Run是一個壞主意,因爲它使用線程池中的另一個線程,因此阻止使用此特定線程來提供請求。Parallel.ForEach是否使用ASP.NET線程池中的線程?
與Parallel.ForEach不一樣的情況嗎?它不會使用線程池中的多個線程,從而阻止這些特定線程用於提供請求嗎?
我讀過在ASP.NET Web應用程序中使用Task.Run是一個壞主意,因爲它使用線程池中的另一個線程,因此阻止使用此特定線程來提供請求。Parallel.ForEach是否使用ASP.NET線程池中的線程?
與Parallel.ForEach不一樣的情況嗎?它不會使用線程池中的多個線程,從而阻止這些特定線程用於提供請求嗎?
與Parallel.ForEach不是同一個問題嗎?它不會使用線程池中的多個線程,從而阻止這些特定線程用於提供請求嗎?
是的,它會的。這意味着您將通過請求使用像這樣的多個請求來降低服務器的總吞吐量。 個別請求會完成得更快,但它會以其他請求爲代價更快完成。
這也假設您的機器處於高負載狀態。如果線程池中沒有足夠高的負載,那麼它可以爲該請求專門提供更多的資源,而不會妨礙其他請求被服務的能力,並且爲該請求專門提供更多的資源可能會加速該請求。
'Task.Run'不好,'Parallel.ForEach'不好。 Task.Run將使用另一個線程而不提供任何好處。 Parallel.ForEach將以其他請求的(可能)開銷更快地完成。這可能是也可能不是問題 –