2012-08-01 47 views
0

我已經使用web客戶端方法在我的wp7應用程序中使用後臺工作人員下載圖像。我開始瞭解默認情況下通常在UI線程中運行的webclient方法。所以現在有一個困惑是wheather在應用程序中的底色螺紋或UI線程Web客戶端運行,即使它是提背景工人階級需要知道在UI線程中運行的webclient下載方法

回答

1

一個WebClient請求將線程上運行的執行內部它被稱爲上除非它的方法名稱末尾有一個Async後綴。 (例如DownloadData(Uri)將同一個線程調用運行。DownloadDataAsync(Uri)將在一個新的後臺線程運行)

如果您使用的是BackgroundWorker打電話給你的Web客戶端請求它不會在UI線程上執行(無論使用DownloadDownloadAsync方法),因爲BackgroundWorker已經在後臺線程中首先運行它的代碼。

編輯:看看你的標籤,應該指出的是,Silverlight(從而Windows Phone 7)僅支持WebClient調用的異步版本。

1

Webclient異步調用將在單獨的線程中運行,但從WP SDK 7.1開始,將在創建WebClient的線程上調用回調事件。 (在WP SDK 7.0中,事件總是在UI線程上調用)。