Coma abbiamo visto nello script #281, una query PLINQ viene distribuita sui processori della macchina per ottimizzare le prestazioni. In virtù di questa distribuzione, l'ordinamento dei dati restituiti non è lo stesso dei dati che vengono processati in quanto la schedulazione dei thread che processano la lista dipende dal sistema operativo.
Tuttavia, se abbiamo la necessità di mantenere lo stesso ordine, possiamo ricorrere al metodo AsOrdered che in fase di merge dei dati restituiti ristabilisce l'ordine.
var result = (from p in persone.AsParallel().AsOrdered() where p.eta > 30 select p) .Take(10);
Grazie al metodo AsOrdered, le 10 persone che vengono restituite sono le prime 10 trovate nella lista originale. Senza AsOrdered, le 10 persone restituite sarebbero state prese in maniera randomica in quanto l'ordine dipende da quale thread finisce prima di processare la sua porzione di dati.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare un KeyedService di default in ASP.NET Core 8
Testare l'invio dei messaggi con Event Hubs Data Explorer
Reactive form tipizzati con modellazione del FormBuilder in Angular
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Installare le Web App site extension tramite una pipeline di Azure DevOps
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Eseguire i worklow di GitHub su runner potenziati
Utilizzare gRPC su App Service di Azure
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Utilizzare i primary constructor in C#
I più letti di oggi
- Gestire la documentazione di più versioni della stessa API su ASP.NET Core 2.1
- Implementare il throttling in ASP.NET Core
- Sviluppare applicazioni per Windows 8 con HTML e JavaScript
- ASP.NET 4.5 e ASP.NET MVC 4 in C# e VB
- Utilizzare il Table-Splitting per caricare i campi di una tabella in lazy loading con Entity framework
- Entity Framework 4 in Action
- Visual Basic 2010
- HTML5 - Espresso
- ASP.NET 4 in C# e VB