Bir winformda, bir düğmeyi tıklatarak bağlantı içeriğini dize olarak indirmek ve daha sonra bir metin kutusuna dize uzunluğunu görüntülemek için bu yöntemi çağırır. Bu tüm zaman uyumsuz olarak gerçekleşir. Bunu eşzamanlı olarak yapmanın bir yolu var mı?C#, HttpClient.getStringAsync() yöntemi için senkronize bir alternatif nedir?
cevap
sadece .Result
alarak herhangi bir görev bloğu yapabilirsiniz:
string response = client.GetStringAsync(...).Result;
Ancak bu bunu yapmamalısınız bir UI iş parçacığı üzerinde çalışıyorsa. UI iş parçacığı üzerinde engelleme güzel değil. Eşzamanlılığı kucaklayın.
Teşekkürler ... tüm kalbimle kucaklıyorum ... sadece test/öğrenme amaçlı bilmek istedim ... –
Bunu yapmadan önce düşünülmesi gereken tek şey: Bu, hata işlemeyi tamamen değiştirir. WebException yerine sadece AggregateExceptions tasarımına sahip olacaksınız. Ve bir zaman aşımı durumunda genel bir TaskCanceledException oluşturan httpClient'te bazı hatalar var gibi görünüyor. – Andreas
WebClient.DownloadString yöntemini kullanabilirsiniz. Kaynak indirilirken bu yöntem bloklanır.
string response = new WebClient().DownloadString(uri);
https://msdn.microsoft.com/en-us/library/fhd1f0sw(v=vs.110).aspx
RestSharp HttpClient için iyi bir açık kaynak alternatiftir. Hem sync hem de async isteklerini destekler.
- 1. com.nineoldandroids kütüphanesini kullanmak için bir alternatif nedir
- 2. Mac için -dpkg'ye alternatif nedir?
- 3. Angularjs'de jQuery için alternatif nedir?
- 4. C++ alternatif()
- 5. Eşzamansız bir yöntemi senkronize etmenin genel bir yolu var mı?
- 6. Bir bootstrap yöntemi nedir?
- 7. Panda zinciri endekslemesine alternatif nedir?
- 8. Java NIO içinde BufferedWriter için alternatif nedir
- 9. Senkronize toplama c yana
- 10. XmlDataDocument ve XslTransform için onaylanmamış alternatif nedir?
- 11. iOS 7'de kSecTrustResultConfirm için alternatif nedir?
- 12. java senkronize blok - tüm yöntemi kilitleme
- 13. alternatif? Öldürmek için ölü
- 14. C alternatif gettext lib?
- 15. MeteorJS'de bir stub yöntemi nedir?
- 16. C'deki normal iddia yöntemi nedir?
- 17. texelFetch için alternatif?
- 18. C++ uygulamasında COM olayları tetikleniyor - Senkronize mi, senkronize mi?
- 19. Bu C# kodunda yazım denetimi için bir alternatif var mı?
- 20. C için isatty() nedir?
- 21. Loggly için ücretsiz bir alternatif
- 22. Yüz tanıma için son teknoloji yöntemi nedir?
- 23. Java'da Kolaylık Yöntemi Nedir?
- 24. Mq'de VerifyAll() yöntemi nedir?
- 25. Kapsamlı enumlar için en iyi alternatif - Ön C++ 11
- 26. alternatif
- 27. Groovy'de Enjeksiyon Yöntemi Nedir?
- 28. Eski (C-benzeri) fscanf yöntemi için modern eşdeğer (C++) stili nedir?
- 29. Kullanımdan kaldırıldı için alternatif oturum_is_registered
- 30. Mon, asp.net için uygun bir alternatif mi?
'DownloadString'? – AgentFire