我有一個ScheduledTaskAgent項目ScheduledAgent.cs中的oninvoke()方法調用自定義類庫項目中的fetchcurrentdetails()方法。如何等到所有的異步調用完成
在這個公共字符串fetchcurrentdetails()方法它有以下一系列事件。
//class variables
string strAddress = string.empty;
public string fetchcurrentdetails()
{
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High);
if (watcher.Permission == GeoPositionPermission.Granted)
{
watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
}
return strAddress ;
}
private void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
WebClient bWC = new WebClient();
System.Uri buri = new Uri("http://dev.virtual//...");
bWC.DownloadStringAsync(new Uri(buri.ToString()));
bWC.DownloadStringCompleted += new DownloadStringCompletedEventHandler(bHttpsCompleted);
}
private void bHttpsCompleted(object sender, DownloadStringCompletedEventArgs bResponse)
{
//do some data extraction and return the string
strAddress = "This is extracted data";
}
return語句總是空字符串返回到調用statement.Any知道如何確保執行類庫中保留,直到方法/事件bHttpsCompleted()完成?或者當事件/方法bHttpsCompleted()被觸發時,返回值的方式是什麼。
我可以使這個工作,但快速的問題。何時抓取當前的細節被調用?這是一次性交易,你只是想獲得一個職位?或者你想不斷變換地理座標? –
另外,你是在Windows Phone 7或Windows Phone 8之後? –
我想開發這個應用程序的Windows Phone 7,也想確保它在Windows Phone 8中工作。目前我在這個Windows Phone 7項目中使用PeriodicTask,它只能每隔30分鐘觸發一次:-(當它觸發oninvoke()方法,此方法調用fetchcurrentdetails()方法作爲其第一條語句。從那裏我已經在我的文章中描述了代碼在類庫中的fetchcurrentdetails()方法中的樣子。如果我可以在地形座標變化時不斷捕捉地理座標事件,但我認爲在Windws phone7中不可能這樣做。 – krrishna