C# 使用WP7下载和解析多个XML文件
我遇到了一个令人困惑的问题,我不确定问题是我不知道WebClient OpenReadCompletedEvent委托,还是我选择的用于服务器端脚本的解决方案存在问题,应用程序与之交互 这是我的问题: 我有一个定义视频游戏标题的类,我使用一个WebClient异步打开一个RSS提要进行阅读,完成后,它将继续使用相同的方法获取用户提交的关于该标题的信息。为此,我循环浏览从RSS提要GameStop.com的RSS提要解析出来的每一个视频游戏标题,这就是我遇到问题的地方,我没有办法让所有这些OpenReadCompletedEvent代理保持同步,或者我没有意识到 现在我的代码变得令人尴尬和复杂,我认为这是错误的: 注:游戏是游戏对象的列表C# 使用WP7下载和解析多个XML文件,c#,php,multithreading,windows-phone-7,webclient,C#,Php,Multithreading,Windows Phone 7,Webclient,我遇到了一个令人困惑的问题,我不确定问题是我不知道WebClient OpenReadCompletedEvent委托,还是我选择的用于服务器端脚本的解决方案存在问题,应用程序与之交互 这是我的问题: 我有一个定义视频游戏标题的类,我使用一个WebClient异步打开一个RSS提要进行阅读,完成后,它将继续使用相同的方法获取用户提交的关于该标题的信息。为此,我循环浏览从RSS提要GameStop.com的RSS提要解析出来的每一个视频游戏标题,这就是我遇到问题的地方,我没有办法让所有这些Open
List<Thread> threads = new List<Thread>();
for(int i = 0; i < games.Count; i++)
{
threads.Add(new Thread(downloadHype));
threads[i].Start(i);
}
public void downloadHype(object data)
{
int index = (int)data;
String tempUrl = String.Format("http://slyduck.com/hypemachine/frontend.php?intent=2&guid={0}", games[index].GuidString);
WebClient client = new WebClient();
client.OpenReadAsync(new Uri(tempUrl));
client.OpenReadCompleted += new OpenReadCompletedEventHandler(
delegate(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
XDocument xdoc = XDocument.Load(e.Result);
games[index].Hype = (from item in xdoc.Descendants("hype")
select new Hype()
{
Id = uint.Parse(item.Element("id").Value),
GameId = uint.Parse(item.Element("game_id").Value),
UserId = uint.Parse(item.Element("user_id").Value),
Score = (uint.Parse(item.Element("score").Value) == 1)
}).ToList();
}
});
}
有没有更简单的方法让我来组织?我考虑过将游戏guid数组作为GET或POST参数发送的可能性,以减轻创建这么多webclient所产生的一些垃圾,但我不确定这是否是正确的解决方案
我已经研究了同步类和并行类,但是它们在SilverLight的.NET实现中不可用
任何帮助都将不胜感激。谢谢 生成的线程太多。记住,一个新线程会直接消耗1MB的虚拟地址空间 如果您有一个用户有一个ID-GUID,那么按照您知道的GUID获取数据,但是您的XML应该是一个炒作列表,而不仅仅是一个
换句话说,使用不同的XML结构。然后,您只需要一个后台线程和一个WebClient就可以获取整个列表。好吧,上面使用的脚本只需获取由游戏guid选择的任何特定游戏的所有宣传分数。当应用程序启动时,我需要下载炒作分数,以及以类似方式对每个游戏所做的评论,这些评论在任何给定时刻都会显示出来,通常为15。我可以发出一个请求,获取所有游戏的所有宣传,然后用C语言进行分类,但是我希望游戏能够非常频繁地循环,因此获取所有游戏的所有宣传最终会导致大量下载。