Штатными средствами нельзя.
Только если вводить глобальную переменную, которая будет сигнализировать о том, что надо потоки ставить на паузу.
Потом создать функцию, которая проверяет статус этой глобальной переменной, и если статус пауза - запускать цикл с паузой с проверкой, не снялась ли пауза.
Потом уже в код потока пихать эту функцию в наиболее критичных местах, где стоит поставить поток на паузу.
Как реализовать многопоточность?
-
На входе у меня урл сайта с которого надо спарсить все урлы его внутренних страниц. Потом зайти на них и скопировать их в соцсеть.
Как реализовать в таком случае многопоточность если использовать один скрипт?
Я пока что додумался только к реализации в 2 подхода, первый скрипт в один поток парсит урлы внутренних страниц, и записывает их в список, а второй скрипт уже постит в несколько потоков. -
Короче, я так понял можно в OnApplicationStart сделать функцию парсинга в один поток, после чего данные с урлами записать в список, а потому уже брать их в несколько потоков в основном теле скрипта, я правильно понял? Может еще какие варианты кто предложит?
-
@Samael_96 Самый простой. Первый поток парсит урл со всех страниц и записывает в ресурс, остальные потоки разгребают этот ресурс.
Ресурс создается в OnApplicationStart.Запись в ресурс - действие "Добавить Элемент"
Создание ресурса - "Создать Ресурс"
По окончании работы первого потока его можно убить действием Fail с параметром "Не перезапускать поток."
Действие "Номер потока" может получать номер треда.В будущем запланированы этапы выполнения. Для этого скрипта можно будет сделать 2 этапа и указать каждому свое количество потоков. Но такая реализация все равно самая быстрая, так как первый и второй этап работают одновременно.