In Silverlight 5 è stato incluso un sottinsieme del Task Parallel Library presente nel .NET Framework 4.0, con questa libreria possiamo eseguire con grande semplicità operazioni multi-thread tra cui le chiamate HTTP che, come noto, in Silverlight possono essere gestite esclusivamente con il modello begin/end.
Grazie alla classe TaskFactory, esposta dalla proprietà Factory di Task, possiamo utilizzare il metodo FromAsync ed il metodo ContinueWith con la sintassi 'fluent' tipica dell'RX Framework.
Nell'esempio seguente possiamo vedere come sia semplificato il codice di una chiamata ad un file remoto grazie al Task Parallel Library.
string uri = "https://www.silverlightitalia.com/script/images/135.xml"; var request = WebRequest.Create(uri); Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null).ContinueWith(task => { string msg; var response = (HttpWebResponse)task.Result; using (var reader = new StreamReader(response.GetResponseStream())) { msg = reader.ReadToEnd(); } Dispatcher.BeginInvoke(() => MessageBox.Show(msg)); });
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Potenziare la ricerca su Cosmos DB con Full Text Search
Gestione degli stili CSS con le regole @layer
Gestire i dati con Azure Cosmos DB Data Explorer
Definire stili a livello di libreria in Angular
Utilizzare Azure AI Studio per testare i modelli AI
Rendere le variabili read-only in una pipeline di Azure DevOps
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Estrarre dati randomici da una lista di oggetti in C#
Collegare applicazioni server e client con .NET Aspire