Загружаются не все файлы из списка

272
11 ноября 2017, 10:41

Работаю над обновлением файлов, список которых получаю по ссылке в json формате. При загрузке приложения, я получаю callback, откуда составляю список загружаемых файлов и передаю в другой класс. Проблема заключается в том, что не все файлы скачиваются, отловить не получается, не знаю, в чем проблема.

В этом классе, в методе updateGameClient, я получаю массив и отправляю его в Browser.Load()

public class CallbackObjectSaveSettings
        {
            private MainWindow _mainWindow;
            public CallbackObjectSaveSettings(MainWindow mainWindow)
            {
                _mainWindow = mainWindow;
            }
            public async void updateGameClient()
            {
                UpdateSet upd = UpdateSet.FromJson(_web.DownloadString("http://127.0.0.1/update/1"));
                var updList = upd.Update;
                for (int i = 0; i < updList.Length; i++)
                {
                     _mainWindow.Dispatcher.Invoke(() => _mainWindow.Browser.Load(updList[i].fileName));
                }
            }

        }

Тут пытаюсь обработать.. ПрогрессБар реагирует на каждый файл по отдельности, и скачиваются максимум 2 файла

class MyDownloadHandler : IDownloadHandler
        {
            private ProgressBar _bar;

            public MyDownloadHandler(ProgressBar bar)
            {
                _bar = bar;
            }
            public void OnBeforeDownload(IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
            {
                if (!callback.IsDisposed)
                {
                    using (callback)
                    {
                        var downFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "upd\\", downloadItem.SuggestedFileName);
                        callback.Continue(downFolder, false);
                        Console.WriteLine("browser " + browser + ", downloadItem: " + downloadItem.Id + " suggestedName: " + downFolder);
                    }
                }
            }
            public void OnDownloadUpdated(IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
            {
                _bar.Dispatcher.Invoke(new Action(() =>
                {
                    Console.WriteLine("Download {0}/{1} bytes", downloadItem.ReceivedBytes, downloadItem.TotalBytes);
                    _bar.Maximum = downloadItem.TotalBytes;
                    _bar.Value = downloadItem.ReceivedBytes;
                }));
            }
        }

Подскажите, пожалуйста, в чем может быть причина? Спасибо!

Answer 1

Переписала метод, создала очередь скачивания файла. Спасибо за помощь!

READ ALSO
Побитовое сравнение

Побитовое сравнение

Объясните пожалуйста на пальцахУ меня есть маска в двоичном представлении 0000 0100, я хочу во время когда пользователь вводит число, например...

312
как использовать мьютекс (Mutex)

как использовать мьютекс (Mutex)

Не могу разобраться как добавить мьютекс,в форме есть 6 pictureBox-ов, каждые t секунды меняет цвет первой части, в ответ на изменение цвета в первой...

263
Assembly interpreter code на С#

Assembly interpreter code на С#

Я пишу assembly interpreter code в C#

303
Как правильно создавать объекты?

Как правильно создавать объекты?

Слышал что не рекомендуется использовать оператор new где попалоЕго необходимо изолировать в отдельном классе который будет отвечать за создания...

257