我目前正在开发一个应用程序,但对于wp7开发还是一个新手,我有一个主进程调用另一个使用StreamReader来读取网页内容并分配变量的类。我遇到的问题是主要过程是在分配值之前尝试使用变量。有没有办法让主进程等到StreamReader完成
在主线程中我有:
locationDetails = new LocationResults();
locationDetails.getResults(addressDetails);
然后在LocationResults类
public void getResults(String address)
{
String addy, tmp;
if (address[0] == '+')
{
tmp = address.Substring(1);
addy = baseAddress + tmp + "&sensor=false";
}
else
addy = baseAddress + address + "&sensor=false";
WebClient webClient = new WebClient();
webClient.OpenReadAsync(new Uri(addy));
webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
}
void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
String tmp;
var reader = new StreamReader(e.Result);
tmp = reader.ReadToEnd().ToString();
results = tmp;
}
答案 0 :(得分:0)
自从我使用WP 7和.NET以来已经很长时间了,但我认为以下方法可以提供帮助:
编辑: 我猜代码看起来应该是这样的:
Task.Factory.StartNew((adr)-> InvokeGetResult(adr as string), addressDetails)
.ContinueWith((data) -> HandleDataSynchronousToMainThread(data),
TaskScheduler.Current);
但是又一次:自从我写完最后一个.NET代码以来已经很长时间了......