C# 5.0 async void vs async Task


 1  private void button1_Click(object sender, EventArgs e)
 2         {
 3             TestReturnsVoid();//會在UI Thread拋出異常,導致程序崩潰
 4         }
 5 
 6         private void button2_Click(object sender, EventArgs e)
 7         {
 8             TestReturnsTask();//會在另外一個線程拋出異常,類似TheadPool的效果
 9         }
10 
11         private async void TestReturnsVoid()
12         {
13             await Test();
14         }
15 
16         private async Task TestReturnsTask()
17         {
18             await Test();
19         }
20 
21         private async Task Test()
22         {
23             throw new NotImplementedException();
24         }

結論
1. async void 僅僅推薦用在UI event handler
2.總是處理事件 : TaskScheduler.UnobservedTaskException

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM