我需要一些代碼來讓我知道異步線程何時完成。這是我製作的Windows手機應用程序。該應用程序是一個公交車追蹤器,用於顯示實時離境,數據將從在線網頁中獲取。如何使我的函數等到異步函數完成?
我有這行代碼在我GetDataFeed
功能
// start the asynchronous request
IAsyncResult aResult = BusStopFeedRequest.BeginGetResponse(new AsyncCallback(HandleFeedData), myState);
這將觸發了我的HandleFeedData
功能,將節省一個網站源代碼轉換成文本字符串變量。
我的問題是我手機上的文本框不會填充字符串的內容,因爲字符串中沒有數據。這被textbox1.Text = obj.GetText()
調用,它應該返回我的實例化類中的私有字符串。
我已經調查使用aResult.AsyncWaitHandle.WaitOne()
,並試圖爲aResult.IsCompleted()
方法輪詢但是從我閱讀和發現自己,這只是不工作。該WaitOne
拋出一個意外的錯誤和IsCompleted
輪詢是一個永無止境的循環。
有沒有人有任何見解我能做些什麼讓我的功能等待異步請求完成於是更新我的類變量,所以我的文本框,就可以看到數據
你能改善這個問題的標題嗎? – 2011-04-22 00:28:52
http://xkcd.com/725/ – 2011-04-22 00:30:38
難道我的回答解決問題了嗎? (我知道這是前一陣子,但如果你記得我的回答是否正確,我會很感激你的標記)。謝謝! :) – 2012-04-24 09:54:58