2013-09-24 3 views
0

Я новичок в программировании на C#/.NET, и у меня есть вопрос.BackgroundWorker несколько результатов

Я использую BackgroundWorker для извлечения данных XML с сервера.

Проблема в том, что данные разбиты на страницы. После того, как я получу страницу, я должен проверить, есть ли другая страница и получить ее дальше.

Но я не хочу, чтобы пользователь дождался (до десятков или более) страниц. И я не могу выполнять параллельные запросы на сервер из-за API ToS (и я не знаю, сколько страниц там).

Я хочу отображать (через DataGridView) каждую страницу данных как можно скорее. Какой-то псевдо-yield.

Можно ли с BackgroundWorker или я должен использовать что-то другое (я использую .NET 4, VS2012)

+0

В отчете reportprogress вы можете обрабатывать все изменения в главном графическом интерфейсе. Это необходимо, чтобы программное обеспечение реагировало. –

ответ

1

Вы должны вызвать метод public void ReportProgress(int percentProgress,Object userState) с XmlNode сегмента в качестве состояния объекта каждый раз, когда ваш работник фон извлекает стр. Это вызовет событие ProgressChanged.

Держите рабочий, пока не закончите страницы. Вот пример: http://msdn.microsoft.com/en-us/library/vstudio/ywkkz4s1.aspx

Смежные вопросы