xna скачать исходный код сайта - PullRequest
0 голосов
/ 13 января 2011

Я должен загрузить HTML-код веб-сайта во время игры. Я беру URL-адрес плаката фильма с веб-сайта IMDB, удаляя HTML (также другую информацию). Я должен делать процесс загрузки много раз во время игры для разных фильмов. Я могу скачать и удалить html, но загрузка html занимает слишком много времени и приводит к замедлению игры (зависание при загрузке). Как я могу решить эту проблему? Мой единственный подход заключается в том, чтобы загрузить и удалить всю информацию и сохранить ее в базе данных перед игрой, а во время игры получить доступ к этой информации из базы данных. Я думаю, что это будет работать правильно, но это не то, что я хочу. Было бы лучше, если бы он был динамичным. Я также думал об использовании многопоточности, но меня немного смущает вопрос о том, как реализовать многопоточность в xna. Я прочитал несколько статей об этом, но это не так ясно. Я имею в виду, когда я должен начать поток и как насчет функции обновления и т. Д. Мне нужна ваша помощь, ребята

Спасибо ..

Ответы [ 2 ]

1 голос
/ 14 января 2011

Посмотрите на этот замечательный маленький вспомогательный класс, который я написал, похоже, он позаботится о вашей проблеме:
http://codecube.net/2010/09/windows-phone-7-webhelper/

Основная идея заключается в том, что вы можете использовать очень упрощенный API,класс загрузит HTML-код в асинхронном режиме и выполнит ваш делегат, когда получит результаты:

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

Конечно, я написал этот класс для Windows Phone ... но если я не ошибаюсьдолжно работать на windows / xna4 также не проблема.

0 голосов
/ 13 января 2011

Это не имеет ничего общего с XNA.Чтобы решить замораживание в вашем основном потоке, вы должны перенести загрузку в другой поток.Кстати, как вы скачиваете файл?Вы можете использовать WebClient.DownloadFileAsync , который загружает файл асинхронно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...