Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il controllo <Isa>.X64.IsSupported, dove <Isa> fa riferimento alle classi nello spazio dei nomi System.Runtime.Intrinsics.X86, può ora produrre un risultato diverso rispetto alle versioni precedenti di .NET.
Consiglio
ISA è l'acronimo di Instruction Set Architecture (Architettura del set di istruzioni).
Versione introdotta
5.0
Modificare la descrizione
Nelle versioni precedenti di .NET alcuni dei tipi intrinseci hardware System.Runtime.Intrinsics.X86, ad esempio, System.Runtime.Intrinsics.X86.Aes, non esponevano una classe X64 annidata. Per questi tipi, la chiamata a <Isa>.X64.IsSupported che si risolve in una proprietà IsSupported in una classe X64 annidata di una classe genitore di <Isa>. Ciò significa che la proprietà potrebbe restituire true anche quando <Isa>.IsSupported restituisce false.
In .NET 5 e versioni successive, tutti i tipi System.Runtime.Intrinsics.X86 espongono una classe X64 annidata che segnala in modo appropriato il supporto. In questo modo si garantisce che la gerarchia generale rimanga corretta e che se <Isa>.X64.IsSupported è true, <Isa>.IsSupported può anche essere considerato true.
Motivo della modifica
Si intendeva che se <Isa>.X64.IsSupported è true, si intende che anche <Isa>.IsSupported sia true. Tuttavia, a causa del funzionamento della risoluzione dei membri in C#, le classi che non avevano una classe X64 annidata esponevano una situazione in cui questo non era sempre il caso e causava bug nel codice utente.
Azione consigliata
Se necessario, modificare il codice che controlla IsSupported per verificare la presenza dell'ISA appropriato.
Le API interessate
- 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