Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Tulajdonság | Érték |
|---|---|
| Szabályazonosító | CA1840 |
| Cím | Az Environment.CurrentManagedThreadId használata Thread.CurrentThread.ManagedThreadId helyett |
| Kategória | Teljesítmény |
| A javítás romboló vagy nem romboló | Nem törhető |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | Javaslatként |
| Alkalmazandó nyelvek | C# és Visual Basic |
Ok
Az aktuális felügyelt szálazonosító lekéréséhez használja a Thread.CurrentThread.ManagedThreadId-t ahelyett, hogy a System.Environment.CurrentManagedThreadId-t használja.
Szabály leírása
System.Environment.CurrentManagedThreadId a Thread.CurrentThread.ManagedThreadId mintának egy kompakt és hatékony helyettesítője.
Szabálysértések kijavítása
A szabálysértés manuálisan is kijavítható, vagy bizonyos esetekben a Gyorsműveletek segítségével kijavíthatja a kódot a Visual Studióban.
A következő két kódrészlet a szabály megsértését és a hiba elhárítását mutatja be:
using System.Threading;
class MyClass
{
void MyMethod()
{
int id = Thread.CurrentThread.ManagedThreadId; // Violation occurs
}
}
Imports System.Threading
Class MyClass
Private Sub MyMethod()
Dim id As Integer = Thread.CurrentThread.ManagedThreadId ' Violation occurs.
End Function
End Class
using System.Threading;
class MyClass
{
void MyMethod()
{
int id = System.Environment.CurrentManagedThreadId; // Violation fixed
}
}
Imports System.Threading
Class MyClass
Private Sub MyMethod()
Dim id As Integer = System.Environment.CurrentManagedThreadId ' Violation fixed.
End Function
End Class
Tipp.
Ehhez a szabályhoz kódjavítás érhető el a Visual Studióban. A használathoz helyezze a kurzort a szabálysértésre, és nyomja le a Ctrl+ billentyűt. (pont). A megjelenő lehetőségek listájában válassza a "Environment.CurrentManagedThreadId" lehetőséget.
Mikor kell letiltani a figyelmeztetéseket?
Nyugodtan letilthatja a szabály megsértését, ha nem aggódik a használat Thread.CurrentThread.ManagedThreadIdteljesítményre gyakorolt hatása miatt.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA1840
// The code that's violating the rule is on this line.
#pragma warning restore CA1840
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA1840.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.