19
可能是一個微不足道的問題,但它可能有助於我的基本理解。Task.Factory.StartNew vs異步方法
以下兩種實現有什麼重要區別嗎?
Task.Factory.StartNew
:public Task<string> ReadAllTextAsync(string path) { return Task.Factory.StartNew(() => File.ReadAllText(path)); }
異步方法上
StreamReader
:public async Task<string> ReadAllTextAsync(string path) { using (var stream = File.OpenRead(path)) using (var reader = new StreamReader(stream)) { return await reader.ReadToEndAsync(); } }
@dtb,在處理任務時,我們無法真正討論ThreadPool。第一個例子是阻塞執行任務的線程,而在第二個例子中沒有。我已經更新了我的答案以包含此信息。 –
+1。好的回答 – dtb
謝謝,澄清了它(特別是第二點,我懷疑IO有一些低效率)。 –