CA2250:使用 ThrowIfCancellationRequested
屬性 | 值 |
---|---|
規則識別碼 | CA2250 |
標題 | 使用 ThrowIfCancellationRequested |
類別 | 使用方式 |
修正程式是中斷或非中斷 | 不中斷 |
預設在 .NET 8 中啟用 | 建議 |
原因
此規則會標幟在擲回 OperationCanceledException 之前檢查 IsCancellationRequested 的條件陳述式。
檔案描述
您可以藉由呼叫 CancellationToken.ThrowIfCancellationRequested() 來完成相同的工作。
如何修正違規
若要修正違規,請將條件陳述式取代為 對 ThrowIfCancellationRequested() 的呼叫。
using System;
using System.Threading;
public void MySlowMethod(CancellationToken token)
{
// Violation
if (token.IsCancellationRequested)
throw new OperationCanceledException();
// Fix
token.ThrowIfCancellationRequested();
// Violation
if (token.IsCancellationRequested)
throw new OperationCanceledException();
else
DoSomethingElse();
// Fix
token.ThrowIfCancellationRequested();
DoSomethingElse();
}
Imports System
Imports System.Threading
Public Sub MySlowMethod(token As CancellationToken)
' Violation
If token.IsCancellationRequested Then
Throw New OperationCanceledException()
End If
' Fix
token.ThrowIfCancellationRequested()
' Violation
If token.IsCancellationRequested Then
Throw New OperationCanceledException()
Else
DoSomethingElse()
End If
' Fix
token.ThrowIfCancellationRequested()
DoSomethingElse()
End Sub
隱藏警告的時機
隱藏來自此規則的警告是安全的。
隱藏警告
如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。
#pragma warning disable CA2250
// The code that's violating the rule is on this line.
#pragma warning restore CA2250
若要停用檔案、資料夾或專案的規則,請在組態檔 中將其嚴重性設定為 。 none
[*.{cs,vb}]
dotnet_diagnostic.CA2250.severity = none
如需詳細資訊,請參閱 如何隱藏程式碼分析警告 。