CA2012:正确使用 ValueTask

2022-02-20 19:32:37 浏览数 (1)

规则 ID

CA2012

类别

可靠性

修复是中断修复还是非中断修复

非中断

原因

从成员调用中返回的 ValueTask 实例的使用方式可能导致异常、损坏或性能不佳。

规则说明

从成员调用中返回的 ValueTask 实例旨在直接等待。 多次尝试使用 ValueTask 或在已知完成之前直接访问其结果可能会导致异常或损坏。 忽略此类 ValueTask 可能指示出现功能 Bug,还可能降低性能。

如何解决冲突

通常情况下,应直接等待 ValueTask,而不是将其丢弃或存储到其他位置(如局部变量或字段)。

何时禁止显示警告

对于从任意成员调用返回的 ValueTask,调用方需要假设 ValueTask 必须使用一次(例如等待)并且仅使用一次。 但是,如果开发人员还控制被调用的成员并对其实现情况有全面了解,则开发人员可能知道可禁止显示警告,例如,如果返回 ValueTask 始终包装 Task 对象。

另请参阅

可靠性规则

0 人点赞