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
Disabilitare automaticamente un workflow di GitHub
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Creare un webhook in Azure DevOps
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Code scanning e advanced security con Azure DevOps
C# 12: Cosa c'è di nuovo e interessante
Cancellare una run di un workflow di GitHub
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Utilizzare Tailwind CSS all'interno di React: installazione
Usare il colore CSS per migliorare lo stile della pagina
Creare form tipizzati con Angular