我將使用REST API的Android應用程序移植到WP7平臺。HttpWebRequest.BeginGetResponse是否在WP7或Silverlight的線程池中使用阻塞GetResponse?
在Android中,所有REST API調用都被阻塞,我手動使用執行程序來平衡執行網絡I/O的線程。
在WP7和Silverlight中,我必須使用HttpWebRequest.BeginGetResponse,它只有讀取響應的異步變體。
它是:
1)使用類似於I/O異步完成,這真的異步? 或 2)只在內部的+線程內使用阻塞讀/寫操作?
出於好奇,你爲什麼要問?有關係嗎? – 2012-07-29 19:47:45
正如我之前所說:我移植現有Android的應用程序代碼,使用阻塞閱讀+線程池進行網絡請求平衡,我認爲將Java的ThreadPoolExecutor移植到WP7,並使用我的Java代碼進行最少的更改,但如果WP7的異步I/O方法是不是真正的異步(使用隱藏的阻塞閱讀+線程) - >移植WP7應用程序可能會有一個性能問題,我想避免(將2個線程同時運行,而不是1對於一個掛起的REST方法)。對於電話應用來說,大量的線程是不好的做法,即使他們閒置。 – gorecode 2012-07-31 08:32:55
確實有道理。感謝您的解釋。 – 2012-07-31 10:33:54