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