C# 5.0 async void vs async Task

两盒软妹~` 提交于 2019-12-06 12:19:07
 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 handler2.总是处理事件 : TaskScheduler.UnobservedTaskException

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!