Рейтинг:
13
OriginalGriff
Не говори глупостей.
То, что вы пытаетесь сделать (я подозреваю), это запустить 10 000+ загрузок одновременно, а не асинхронно - и это никоим образом не улучшит скорость загрузки: это может сделать ее медленнее (это почти наверняка будет), и это, скорее всего, приведет к сбою приложения или, возможно, одной или другой из систем.
Почему?
Что ж... вы когда-нибудь слышали о DDoS? Распределенный отказ в обслуживании? Это работает путем наводнения сервера запросами, так что он настолько занят, что выходит из строя или иным образом не может обрабатывать новые (законные) запросы.
И это то, что вы пытаетесь сделать, без "распределенной" части.
Независимо от того, сколько памяти у вас есть, вы исчерпаете ее: и тогда система yoru перейдет в режим измельчения, когда она начнет подкачку на диск, чтобы освободить память для добавления новых загрузок, которые уже используют так много пропускной способности, что ваше интернет-соединение замедляется до ползания ...
Нет, ты не можешь этого сделать.
karekarmahadev
@OriginalGriff, Спасибо за ваши комментарии!!. Да, вы правы, я пытался использовать многопоточный подход, но приложение перешло в режим "не отвечает".
OriginalGriff
Всегда пожалуйста!
Рейтинг:
0
Afzaal Ahmad Zeeshan
Цитата:
10000+ файлов асинхронно из Sharepoint online
Тогда почему бы вам не использовать для этого SDK SharePoint? Они позаботятся о том, как заказать задания загрузки, загрузить и предоставить вам более 10 000 файлов на вашем компьютере.
Добро пожаловать в пакет SDK Microsoft SharePoint 2010 | Microsoft Docs[
^]
Цитата:
Но есть некоторые ограничения на фреймворк, он должен быть закодирован using.NET только фреймворк 4.0. Следовательно, не могу использовать библиотеку TPL.
Но вы можете использовать TPL в .Чистый фреймворк 4.0. Не примите мое слово для этого,
Начиная с .NET Framework 4, TPL является предпочтительным способом написания многопоточного и параллельного кода.
Таким образом, в принципе, вы можете сделать и то, и другое без каких—либо проблем-прочитайте ответ OriginalGriff о том, какие ограничения вы столкнетесь на своей собственной машине, а также на серверах Microsoft. Хороший способ выполнить это требование-сначала заархивировать папку (или файлы, где бы они ни находились), а затем загрузить этот единственный zip-файл.
Помните, что при асинхронном подходе вы не улучшаете производительность или время загрузки, а скорее (в масштабе 10 000+ задач) ухудшаете производительность в большом масштабе. Каждая задача потребует интернета, а также ресурсов памяти и процессора, и это может вызвать голод в ваших задачах... Много плохого случится, так сказать.
karekarmahadev
- Тогда почему вы не используете для этого SDK SharePoint? Они позаботятся о том, как заказать задания загрузки, загрузить и предоставить вам более 10 000 файлов на вашем компьютере."
Да, я использую SDK SharePoint, который позволяет мне загружать более 10000 файлов без каких-либо проблем. Что я хотел сделать, так это ускорить эту операцию, поэтому думал об асинхронном способе. Но, согласно некоторым комментариям экспертов выше, похоже, что это не очень хороший подход.
Afzaal Ahmad Zeeshan
Улучшение скорости загрузки не требует никакого программирования (кроме некоторых тонких настроек), но в реальности оно требует хорошего подключения к интернету.
karekarmahadev
"Но вы можете использовать TPL в .Чистый фреймворк 4.0. Не примите мое слово для этого, "
согласитесь, то, что я хотел использовать, было Aync/Task, мой плохой я думал, что это часть TPL.
Асинхронный шаблон на основе задач (TAP). https://docs.microsoft.com/en-us/dotnet/csharp/async