Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bei der Überprüfung von <Isa>.X64.IsSupported
, wobei <Isa>
auf die Klassen im Namespace System.Runtime.Intrinsics.X86 verweist, kann das Ergebnis jetzt von früheren .NET-Versionen abweichen.
Tipp
ISA steht für „Instruction Set Architecture“ (Befehlssatzarchitektur).
Eingeführt in Version
5.0
Beschreibung ändern
In früheren .NET-Versionen machten einige der hardwareintrinsischen System.Runtime.Intrinsics.X86-Typen wie System.Runtime.Intrinsics.X86.Aes keine geschachtelte X64
-Klasse verfügbar. Für diese Typen wurde der Aufruf von <Isa>.X64.IsSupported
in eine IsSupported
-Eigenschaft in einer geschachtelten X64
-Klasse aufgelöst, der die Klasse <Isa>
übergeordnet ist. Das bedeutete, dass die Eigenschaft true
zurückgeben konnte, auch wenn <Isa>.IsSupported
false
zurückgibt.
In .NET 5 und höher machen alle System.Runtime.Intrinsics.X86-Typen eine geschachtelte X64
-Klasse verfügbar, die Unterstützung entsprechend meldet. Dadurch wird sichergestellt, dass die allgemeine Hierarchie korrekt bleibt und wenn <Isa>.X64.IsSupported
true
ist, dann kann <Isa>.IsSupported
auch als true
angenommen werden.
Grund für Änderung
Wenn <Isa>.X64.IsSupported
true
entspricht, ist beabsichtigt, dass für <Isa>.IsSupported
true
impliziert werden kann. Aufgrund der Funktionsweise der Memberauflösung in C# führten Klassen ohne geschachtelte X64
-Klasse in Situationen, in denen das nicht der Fall war, zu Fehlern im Benutzercode.
Empfohlene Aktion
Passen Sie Code mit Überprüfungen auf IsSupported
ggf. an, damit die richtige ISA überprüft wird.
Betroffene APIs
- System.Runtime.Intrinsics.X86.Aes.X64.IsSupported
- System.Runtime.Intrinsics.X86.Avx.X64.IsSupported
- System.Runtime.Intrinsics.X86.Avx2.X64.IsSupported
- System.Runtime.Intrinsics.X86.Fma.X64.IsSupported
- System.Runtime.Intrinsics.X86.Pclmulqdq.X64.IsSupported
- System.Runtime.Intrinsics.X86.Sse3.X64.IsSupported
- System.Runtime.Intrinsics.X86.Ssse3.X64.IsSupported