.NET 任務建立:Task.Run() 與 Task.Factory.StartNew()
.NET 框架的 Task
類別有助於非同步程式設計。 雖然 Task.Factory.StartNew()
長期以來一直是創建新任務的標準,但 Task.Run()
提供了更簡單的替代方案。本文闡明了它們之間的區別並指導您選擇合適的方法。
Task.Run():日常任務的簡單性
Task.Run()
簡化了任務創建,非常適合預設設定就足夠的場景。它的易用性使其非常適合簡單的非同步操作。
Task.Factory.StartNew():進階控制與自訂
Task.Factory.StartNew()
提供對任務行為的精細控制,允許自訂:
LongRunning
)。 何時使用哪一個?
對於沒有特殊要求的簡單任務,Task.Run()
是更簡潔的選擇。 然而,對於需要細粒度控制的複雜場景,Task.Factory.StartNew()
提供了必要的靈活性。
說明性範例:長時間運行的操作
假設您需要一個不應使用執行緒池執行緒的長時間運行的任務。 Task.Run()
不允許這樣做。 但是,Task.Factory.StartNew()
透過 LongRunning
選項允許這樣做:
<code class="language-csharp">Task.Factory.StartNew(..., TaskCreationOptions.LongRunning);</code>
總結
Task.Run()
簡化了任務啟動,而 Task.Factory.StartNew()
提供了卓越的控制。 了解它們的差異是編寫高效且適應性強的非同步程式碼的關鍵。選擇最適合您特定非同步程式設計需求的方法。
以上是Task.Run() 與 Task.Factory.StartNew():什麼時候該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!