Яндекс.Метрика

    Песочница →

    Background Intelligent Transfer Service

    Вы все еще не знаете, как лучше организовать передачу файлов по сети на компьютеры под управлением Windows? Тогда вам сюда!

    Background Intelligent Transfer Service (BITS) – служба ОС Windows, которая может передавать файлы в фоновом режиме. Она используется, в основном, для Windows Update.

    Какой же интерес BITS представляет для разработчиков?

    1. Возможность закачки файлов в фоновом режиме, незаметно для пользователя
    2. Высокий уровень отказоустойчивости. Если сетевой кабель перерубят, или комп выпадет в «синий экран», то BITS докачает файлы, как только это станет возможно.
    3. Intelligent сказано не зря. Если пользователь в данный момент ничего не качает и комп простаивает, BITS воспользуется освободившимися ресурсами. Эту фичу можно использовать, назначая различные приоритеты закачек.

    Работать с BITS можно через специальный API

    В своем проекте я использовал удобную, вполне рабочую «обертку» для .NET. Так же существует еще одна.

    Ключевым объектом BITS является Job (не надо дословного перевода, назовем это «закачкой»).
    Жизненный цикл «закачки» следующий:

    1. Создание Job. Указываем название, описание, тип (Upload\Download) и приоритет

    2. Добавление файлов. Job может содержать несколько файлов, если выбран тип Download.

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

    4. Запуск закачки. Далее BITS все делает сам.

    Важной особенностью BITS является то, что создать закачку может только пользователь, совершивший вход в систему, либо системная учетная запись. Тем, кто собирается использовать BITS, советую не забывать об этом.

    Я сознательно не привожу примеров кода, они есть здесь и здесь.

    Для дополнительного ознакомления есть замечательная статья на английском