c# - 有没有办法找到未等待的任务?
问题描述
我进行了大规模的重构,并将数百个 Web API 方法从同步转换为异步。
问题是我现在有很多问题!主要是因为这些方法的每个调用者都应该在每次调用中使用 await 关键字。
编译器很有用,因为大多数情况下都可以检测到一个固定的观察编译器错误/警告,但是当编译器没有帮助时,也有一些沉默的情况。
例如,在这样的情况下:
public async Task<Item> Example()
{
return new Item
{
Property = GetName();
};
}
private Task<string> GetName()
{
return Task.FromResult("Hello");
}
class Item
{
public object Property { get; set; }
}
请注意,该GetName
方法没有等待,但编译器不会抱怨也不会发出任何警告,因为 Property 是类型object
并且可以接受任何东西(包括 a Task
)
有没有办法检测到这种未等待的任务?也许是一个扩展或一个不错的技巧?
解决方案
推荐阅读
- javascript - React:渲染一个数据数组
- c++ - 如何在 Visual Studio 2019 中使用 C++ 和 DirectX8 从 USB 操纵杆读取数据
- syntax - 如何在崇高的文本中为每一行着色
- php - 将参数传递给方法
- docker - docker config 中 credStore 属性的值“desktop”是什么意思?
- python - 旋转包含列表的列
- javascript - 是否可以让多个键指向同一个对象?
- python - TypeError:“NoneType”对象在 Python 递归中不可迭代
- azure-devops - 试图从另一个管道触发天蓝色管道
- sql-server - SQL Server 数据库中带有 Group by 子句的 JPQL 不起作用