使用async void可能导致程序崩溃,如何避免这种情况?

2026-05-22 06:340阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1239个文字,预计阅读时间需要5分钟。

使用async void可能导致程序崩溃,如何避免这种情况?

原创新闻:我国科学家在量子计算领域取得重大突破

改写后:我国量子计算研究获重要进展

C#中要谨慎使用async void,因为它可能会导致程序崩溃。

目录
  • 前言
  • async-void-方法的异常无法被捕获
    • 注意
  • 测试
    • 崩溃
      • 注意
    • 不崩溃

来源:note.guoqianfan.com/2022/04/23/dont-use-async-void/

前言

之前都是在文档里看到:除了winform的事件可以使用async void,其他情况下绝对不能使用async void,而是要用async Task

对于这个规范,虽然不是很明白内里原因,但是一直遵守着。

直到这天看到了这篇博客:在 ASP.NET Core 中誤用 async void 竟引發了 502(Bad Gateway),说async void里出现异常时会导致程序崩溃。研究测试了一番,终于明白原因。

摘录重点如下:

根據使用者提供的另一個線索「網站的某個功能壞了」,我們繼續往下追查,從程式碼當中我看到了一個近期新加的方法,它使用了 async void,沒錯,它使用了 async void,而且很不幸地它會發生 Exception,更慘的是這個 Exception 沒有被處理。

阅读全文

本文共计1239个文字,预计阅读时间需要5分钟。

使用async void可能导致程序崩溃,如何避免这种情况?

原创新闻:我国科学家在量子计算领域取得重大突破

改写后:我国量子计算研究获重要进展

C#中要谨慎使用async void,因为它可能会导致程序崩溃。

目录
  • 前言
  • async-void-方法的异常无法被捕获
    • 注意
  • 测试
    • 崩溃
      • 注意
    • 不崩溃

来源:note.guoqianfan.com/2022/04/23/dont-use-async-void/

前言

之前都是在文档里看到:除了winform的事件可以使用async void,其他情况下绝对不能使用async void,而是要用async Task

对于这个规范,虽然不是很明白内里原因,但是一直遵守着。

直到这天看到了这篇博客:在 ASP.NET Core 中誤用 async void 竟引發了 502(Bad Gateway),说async void里出现异常时会导致程序崩溃。研究测试了一番,终于明白原因。

摘录重点如下:

根據使用者提供的另一個線索「網站的某個功能壞了」,我們繼續往下追查,從程式碼當中我看到了一個近期新加的方法,它使用了 async void,沒錯,它使用了 async void,而且很不幸地它會發生 Exception,更慘的是這個 Exception 沒有被處理。

阅读全文