2012-04-21 51 views
2

我一直在使用Windows Phone 7應用程序&試圖通過使用HttpWebRequest.GetResponse()進行同步REST調用,但編譯器抱怨GetResponse()不可用。我在HttpWebRequest中找到了BeginGetResponse()和EndGetResponse()。但據我所知,這兩種方法用於異步調用。在WP7中進行同步Http/REST調用?

我們的設計已經實現只支持同步請求,任何人都可以請告訴我「有什麼辦法,使在WP7同步調用」

+0

不,您不能進行同步呼叫,因爲他們可以阻止用戶界面。 Silverlight不包含任何同步I/O調用。 – Gabe 2012-04-21 19:18:58

+0

@Gabe:如果你從一個工作線程執行同步請求,實際上並沒有什麼壞處。 – 2012-05-27 09:33:34

回答

3

您可以通過阻斷上AutoResetEvent直到異步模擬同步請求致電退貨。 See here for a reference implementation.

+1

我使用的東西與此非常相似。有兩件事要注意。 1. AutoResetEvent沒有被正確清理 - 它們應該被移入一個'using(){}'塊中。 2.這些方法**必須從後臺線程調用。如果他們在UI線程上被調用,他們將** **死鎖**。 – MrMDavidson 2012-04-21 23:05:00

+0

非常感謝Mihai。它爲我工作。 – Nannu 2012-04-22 07:44:54

+0

很高興聽到!也許你可以將我的答案標記爲已接受? – Mihai 2012-04-22 11:35:13