In una winform, facendo clic su un pulsante, si chiama questo metodo per scaricare il contenuto del collegamento come stringa e quindi visualizzare la lunghezza della stringa in una casella di testo. Tutto ciò avviene in modo asincrono. C'è un modo per farlo in modo sincrono?In C#, cos'è un'alternativa sincrona per il metodo HttpClient.getStringAsync()?
risposta
è possibile effettuare qualsiasi operazione di blocco da solo prendendo il .Result
:
string response = client.GetStringAsync(...).Result;
Tuttavia, se questo è in esecuzione su un thread dell'interfaccia utente non si deve fare questo. Il blocco sul thread dell'interfaccia utente non è bello. Abbraccia l'asincronia.
grazie ... l'ho abbracciato con tutto il mio cuore ... volevo solo sapere per scopi di test/apprendimento ... –
Una cosa su cui riflettere prima di fare questo: questo cambia completamente la gestione degli errori. Invece di WebException riceverai solo AggregateExceptions in base alla progettazione. E sembra esserci qualche bug in httpClient che crea una TaskCanceledException generica in caso di un timeout. – Andreas
È possibile utilizzare il metodo WebClient.DownloadString. Questo metodo si blocca durante il download della risorsa.
string response = new WebClient().DownloadString(uri);
https://msdn.microsoft.com/en-us/library/fhd1f0sw(v=vs.110).aspx
RestSharp è una buona fonte alternativa aperta a HttpClient. Supporta entrambe le richieste di sincronizzazione e asincrono.
- 1. Crea funzione sincrona in javascript?
- 2. Esempio di richiesta HTTP sincrona per iPad/obiettivo-C?
- 3. chiamata http sincrona in angularJS
- 4. Registrazione console sincrona in Chrome
- 5. Modo corretto per convertire il metodo in asincrono in C#?
- 6. Interrupt hardware per acquisizione dati sincrona
- 7. C# Contiene il metodo
- 8. La chiamata all'operatore 'elimina' sincrona?
- 9. "onEachSubelement (...)" metodo per C++
- 10. immidiate vs comunicazione sincrona in openmpi
- 11. AngularJs: $ http chiamata sincrona
- 12. Richiesta personalizzata sincrona JavaScript
- 13. Azione T sincrona e asincrona
- 14. Come racchiudere una classe asincrona per renderla sincrona? Usa NSRunLoop?
- 15. richiesta jQuery JSON sincrona
- 16. Sostituzione per il metodo Normalizer.getClass (c) in Java 6
- 17. Perché compilatore C# metodo di produzione di chiamata per chiamare il metodo BaseClass in IL
- 18. C/C++: metodo portatile per rilevare il debug/rilascio?
- 19. Chiamata sincrona in Google Estensione Google Chrome
- 20. C'è un modo per simulare una richiesta XHR sincrona?
- 21. La funzione kill è sincrona?
- 22. C#: il metodo generico non chiama il metodo specifico overload
- 23. API database HTML5: richiesta sincrona
- 24. Async chiamata entro funzione sincrona
- 25. Fai in modo che il C++ chiami il metodo giusto per il modello in modo sgradevole
- 26. Blocco metodo in C#
- 27. Richiesta sincrona NSURLConnection su https
- 28. Il metodo C# è sigillato o virtuale per impostazione predefinita?
- 29. Attraversare un metodo C# e anazlye il metodo body
- 30. Passare il tipo 'var' in un metodo in C#
'DownloadString'? – AgentFire