[英]Tasks vs Threads in .NET 4.5
在.Net 4
,有一個新的Tasks功能,我想知道我是否可以通過.Net 4.5
Async/Await
依賴它來Async/Await
執行所有要使用的所有方法,或者在某些情況下我將必須使用單獨的Thread
,特別是我已閱讀Task.Run使用ThreadPool
異步執行該方法。
結論:將Async/Await
與Tasks
結合使用可以使我擺脫使用Threads
嗎?
如果您指定TaskCreationOptions.LongRunning
選項(也有等效的延續),則該任務將不使用線程池線程,而將使用常規Thread
。 從技術上講,這是一個實現細節,不在規范中,但這並不是完全不合理的假設。
鑒於此,您應該能夠使用Task
直接執行與Thread
一起執行的任何操作。
某個人可能想直接使用Thread
的主要情況是,創建您自己的並行庫,假設您選擇不將其構建在TPL之上。 盡管在業務應用程序的上下文中它並不重要,但是在創建自己的庫時,您可能需要訪問特定Thread
對象的基礎詳細信息,或者您可能希望避免使用Tasks
的開銷(雖然很小)。
然后,當然,如果您尚未使用.NET 4.0,則不能選擇使用Task
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.