我需要一些代码来让我知道异步线程何时完成。这是我制作的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