簡體   English   中英

在.NET 4中,BeginInvoke和Task是否使用相同的線程池?

[英]In .NET 4, does BeginInvoke and Task use the same threadpool?

.NET 4引入了由Task Parallel庫訪問的全新線程池設計。 但是,如果我有使用Delegate.BeginInvoke的舊代碼,那些新線程池會執行嗎? 或舊的線程池仍然在運行時的某個地方?

它們都使用相同的ThreadPool。 ThreadPool.QueueUserWorkItem也可以。

但是,與Task.Factory.StartNew相比, Delegate.BeginInvoke有額外的開銷,並且沒有利用ThreadPool中的許多功能,例如工作竊取或新的調試功能。 我建議重構這個以在時間允許的情況下使用新的Task功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM