首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

与执行顺序的有关问题

2012-09-01 
求助与执行顺序的问题我想先执行这个wc_DownloadStringCompleted异步事件再执行retrun。C# code public str

求助与执行顺序的问题
我想先执行这个wc_DownloadStringCompleted异步事件再执行retrun。

C# code
 public string get(string cityName)    {     //获取目标城市的经纬度        string str1 = HttpUtility.UrlEncode(cityName);//更改目的地的数据类型        string str = "http://api.map.baidu.com/geocoder?address=" + str1 + "&key=e99d1a1c866d781a85a0c42799a3182c";//查询目的地经纬度url        WebClient wc = new WebClient();//用WebClient来下载网上的内容,可以是图片或者文档        wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);//异步事件开始下载        wc.DownloadStringAsync(new Uri(str));      }    void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)    {        string str5 = e.Result;          //返回网页的XML内容字符串类型        XElement xelement = XElement.Parse(str5);//根据返回的字符串类型加载成XML元素        foreach (XElement item in xelement.Descendants())        {            if (item.Name == "lng")            {                longtude1 = item.Value;//经度            }            if (item.Name == "lat")            {                langtide1 = item.Value;//纬度            }        }    }


[解决办法]
本地测试了一下,是先返回,后执行异步的方法。
友情帮顶!
[解决办法]
探讨
我想先执行这个wc_DownloadStringCompleted异步事件再执行retrun。

C# code

public string get(string cityName)
{
//获取目标城市的经纬度
string str1 = HttpUtility.UrlEncode(cityName);//更改目的地的数据类型
……

[解决办法]
WebClient wc = new WebClient();//用WebClient来下载网上的内容,可以是图片或者文档
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);//异步事件开始下载
wc.DownloadStringAsync(new Uri(str));

完全没用上异步的好处啊,换了吧.
WebClient wc = new WebClient();//
string html = wc.DownloadString(new Uri(str));
wc_DownloadStringCompleted(html);

热点排行