2011-01-13 68 views
0

我必须在游戏中下载网站的html代码。我正在从imdb网站取消电影的海报网址(通过删除html(还有其他信息))。我不得不在游戏中为不同的电影多次下载过程。我可以下载并取消html,但下载html需要很长时间,并且会导致游戏速度变慢(下载时冻结)。我怎么解决这个问题?我的一种方法是在游戏开始之前以及在游戏中从数据库访问这些信息时,下载并取消所有信息并将其存储在数据库中。我认为这会正常工作,但这不是我真正想要的。如果它是动态的,它会更好。我也想过使用多线程,但我对如何在xna中实现线程感到困惑。我阅读了一些关于它的文章,但并不清楚。我的意思是,当我应该开始有关更新等功能的线程,我需要你的帮助球员xna下载网站源代码

谢谢..

回答

0

这有什么做用XNA。要解决主线程中的冻结问题,您应该在另一个线程上移动下载内容。顺便说一句,你如何下载文件?您可以使用异步下载文件的WebClient.DownloadFileAsync

+0

我正在使用WebClient.DownloadData。我很困惑在哪里开始下载线程,因为在每一帧更新函数被调用,但下载线程应该只需要下载时调用,所以我认为我不能在更新方法中启动此线程。或者我应该控制在更新方法中是否需要下载,然后启动线程? – 2011-01-13 12:36:30

1

看看这个可爱的小助手类我写的,听起来就像是将你的问题的护理:
http://codecube.net/2010/09/windows-phone-7-webhelper/

的基本想法是,你可以用一个非常简单的API,类将下载HTML的异步和执行你的委托时,得到的结果:

string u = @"http://bing.com"; 
WebHelper.Get(u, html => 
    { 
     Debug.WriteLine(html); 
    }); 

当然,我写了与Windows手机记住,类...但如果我没有记错的话,应该在Windows/xna4工作没问题。