C# xna下载网站源代码

C# xna下载网站源代码,c#,multithreading,xna,C#,Multithreading,Xna,我必须在游戏期间下载网站的html代码。我从imdb网站上删除了html(以及其他信息),获取了一部电影的海报url。我必须在游戏中多次下载不同的电影。我可以下载并废弃html,但下载html需要太多时间,这会导致游戏速度减慢(下载时冻结)。我怎样才能解决这个问题?我的一种方法是在游戏开始前下载并删除所有信息,并将其存储在数据库中,然后在游戏期间从数据库中访问这些信息。我认为这将正常工作,但这不是我真正想要的。如果是动态的就更好了。我也想过使用多线程,但对于如何在xna中实现线程,我有点困惑。我

我必须在游戏期间下载网站的html代码。我从imdb网站上删除了html(以及其他信息),获取了一部电影的海报url。我必须在游戏中多次下载不同的电影。我可以下载并废弃html,但下载html需要太多时间,这会导致游戏速度减慢(下载时冻结)。我怎样才能解决这个问题?我的一种方法是在游戏开始前下载并删除所有信息,并将其存储在数据库中,然后在游戏期间从数据库中访问这些信息。我认为这将正常工作,但这不是我真正想要的。如果是动态的就更好了。我也想过使用多线程,但对于如何在xna中实现线程,我有点困惑。我读了一些关于它的文章,但不太清楚。我的意思是我应该什么时候开始线程,更新功能如何等等。我需要你们的帮助


谢谢。

这与XNA无关。要解决主线程中的冻结问题,您应该将下载转移到另一个线程上。顺便问一下,你是如何下载这个文件的?您可以使用异步下载文件的。

查看我编写的这个漂亮的小助手类,听起来它会解决您的问题:

基本思想是,您可以使用非常简化的API,该类将异步下载HTML,并在获得结果时执行委托:

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

当然,我写这门课的时候考虑到了windows phone。。。但是如果我没有弄错的话,它应该可以在windows/xna4上工作,也没有问题

我正在使用WebClient.DownloadData。我不知道从哪里开始下载线程,因为在每个帧中都会调用更新函数,但下载线程应该只在需要下载时调用,所以我认为我无法在更新方法中启动此线程。或者我应该控制更新方法中是否需要下载,然后启动线程?当然,您应该检查是否需要下载,如果需要,检查下载线程是否尚未启动,如果尚未启动,然后启动它。