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>.IsSupportedfalse 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.IsSupportedtrueist, dann kann <Isa>.IsSupported auch als trueangenommen werden.
Grund für Änderung
Wenn <Isa>.X64.IsSupportedtrue entspricht, ist beabsichtigt, dass für <Isa>.IsSupportedtrue 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