2009-02-23 18 views
8

Bir web istemi uyumsuz olarak almak için en iyi yöntem nedir?Asenkron Web Gereksinimi en iyi uygulamaları

İnternetten bir sayfa indirmek istiyorum (ne fark etmez) ve mümkün olduğunca çok iş parçacığı engellemek.

Önceden 'BeginGetResponse' ve 'EndGetResponse' çiftlerini kullanmanın yeterli olduğuna inandım. Ama yakından bakınca ben de 'BeginGetRequestStream'

[GÜNCELLEME] kullanmanın seçeneği vardır görüyoruz GetRequestStream POST işlemleri

için kullanılan Sonra akışı kullanarak olmalı, karışıklığa ekleyin. BeginRead ve EndRead?

[GÜNCELLEME] bu article o zaman uyumsuz

Ne dağınıklık Stream.BeginRead

kullanarak HttpResponse.GetResponseStream işlemek için daha iyi anlaşılacağı!

Birisi bana doğru yönde işaret edebilir mi?

En İyi Uygulama Nedir?

cevap

0
  1. Sen asynchonously HTTP yanıtı için beklenecek/EndGetResponse başlayın kullanın. Bir POST yapıyor ve çok sayıda veri senkronize olmayan bir şekilde göndermeniz gerekiyorsa, Begin/EndGetRequestStream'i kullanın.

  2. Bu, eşzamansız iletişim için benzersiz değildir; ek bilgi almak için eşzamanlı sürümlere bakabilirsiniz.

  3. Neden istek akışında bir Okuma yapıyor olacağınızdan emin değilim - büyük olasılıkla ona yazacaksınız ve Yanıt akışından okuyacaksınız.

Son olarak, Jeffrey Richter's blog HttpWebRequest ve akışları inceliklerini bazıları hakkında bir makale vardır.

+0

evet sanırım 'BeginGetRequestStream' –

0

Web isteğini yeni bir iş parçacığında yapmayı düşündünüz mü?

http://msdn.microsoft.com/en-us/library/ms173178.aspx

+0

yeni bir iş parçacığı başlamaktan daha az ideal bir amaçtır. Basitçe başka bir iş parçacığını engellemek, bu uygulamanın ölçeklenmesine yardımcı olmaz –

5

Bunun tüm kodu kendiniz olabilir ya da sadece sizin için homurtu bir sürü iş yapar WebClient'ı kullanabilirsiniz. Örneğin, dosyayı bir dizge olarak indirmek için, OnDowloadStringCompleted olayını nihayetinde tetikleyecek olan DownloadStringAsync() öğesini çağırırsınız. Dosya ikili ise, bunun yerine DownloadDataAsync() yöntemini kullanmayı deneyebilirsiniz.

İlgili konular