我想將非常靜態的DownloadString()
調用轉換爲DownloadStringAsync()
,但無法按需要獲取流。將DownloadString WebClient()單線程調用遷移到異步調用
目前,我做了在很多地方如下:
string apiurl = "http://api.gowalla.com/spots/" + spot;
var entries = JsonConvert.DeserializeObject<SpotInfo>(CallGowalla(apiurl));
return entries;
隨着CallGowalla
看起來像這樣:
private static string CallGowalla(string apiurl)
{
var wc = new WebClient();
wc.Headers["Accept"] = "application/json";
wc.Headers["ContentType"] = "application/json";
wc.Headers["Authorization"] = CreateAuthorizationString();
wc.Headers["-Gowalla-API-Key"] = ConfigurationManager.AppSettings["api"].ToString();
var raw = wc.DownloadString(apiurl);
return raw;
}
我的叫聲越來越掛斷,所以我想要將DownloadString
移動到DownloadStringAsync
,我不知道從哪裏開始,而不是全部拆開CallGowalla
的所有呼叫。
任何想法?建築與重構歡迎也
建議...
這是一個贏得應用程序或網絡應用程序? – 2011-03-24 01:08:30
爲什麼不把這些調用移動到後臺線程?你確定你想要異步呼叫嗎? – BrokenGlass 2011-03-24 02:12:13