Skip to main content
Source: Al0057ToAl0060ThreadingAnalyzer.cs

Description

typeof(T) returns a globally shared Type object. Locking on it creates cross-assembly deadlock risks.

Bad Code

public void Update()
{
    lock (typeof(MyService)) { _count++; }
}

Good Code

private static readonly object s_lock = new();
public void Update()
{
    lock (s_lock) { _count++; }
}

Properties

  • Category: Threading
  • Severity: Warning
  • Enabled by default: True
  • Code fix available: False

Configuration

dotnet_diagnostic.AL0059.severity = warning