2013-04-29 27 views
8

HTTPClientSession kullanmak için her zamanki örnek kod şöyle gider Poco HTTPClientSession okunan operasyonlar engellenmiyor, böylece onları istediğim zaman iptal edebilir miyim?zaman uyumsuz

+0

bunun için herhangi bir çözüm buldular mı? – UVV

cevap

3

Sadece bir fikir, Kodunuzu bir iş parçacığının içine koymaya çalışın.

http://pocoproject.org/slides/130-Threads.pdf

Selamlar

+0

bu nasıl yardımcı olur? Bu yeni iş parçacığının belirsiz bir süre için bloke olmasını isterim –

+1

Eğer oturum.receiveResponse() öğesini bir iş parçacığının içine koyarsanız, ana kodunuzu ayrı iş parçacığından çalıştırabileceğiniz için engelleniyor ya da olmasın endişelenmenize gerek yok. . Engelleme bölümünü iptal etmek isterseniz, iş parçacığını öldürebilir veya siparişi keserek durdurabilirsiniz. Konular arasında veri alışverişi yapmak için örneğin referansları/işaretçileri veya mutekslerle senkronize edilmiş sıraları kullanın. Bir süre için receiveResponse() öğesini engellemek isterseniz Time-Alives (set-AliAliveTimeout yöntemi) ve zaman aşımları görünmelidir. İyi şanslar –

+0

Tamam, geçerli bağlantınız için küçük bir TimeOut yapılandırmak için HTTPClientSession :: setKeepAliveTimeout() yöntemini deneyin. Belgelerden, "Aktarım, sendRequest() çağrılana kadar veya oturumu yok olana kadar geçerlidir", böylece rs akışınız bir süre boyunca hiçbir şey almazsa, sorunsuz devam etmelidir. –

İlgili konular