Анализ трафика в многопотоке не работает?

  • Автор темы Автор темы The_vAe
  • Дата начала Дата начала

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 759
Реакции
1 493
Баллы
113
Доброго времени. Подскажите, пожалуйста, запускаю через project maker анализ трафика:

Перед целевой страницей капчи использую команду: instance.UseTrafficMonitoring = true;
Далее трафик по идее будет собираться на последующих страницах. Перехожу на саму капчу яндекс и анализирую трафик на наличие картинок (пример части кода).
C#:
Развернуть Свернуть Копировать
List<string> Spisok = new List<string>();

var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url.Contains("yandex"))
    {
        Spisok.Add(t.Url);
        project.SendToLog("Получили Трафик\n"+ t.Url, ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, false, ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Yellow);

    }
}

Через prodject maker все собирает из трафика успешно и решает ее. Но достаточно запустить в многопотоке через зеннопостер, как абсолютно все окна перестают перехватывать трафик, хотя в project maker весь проект по решению капчи работает без сбоев.

1. Возможно нужно использовать lock при перехвате или что еще может так кардинально мешать перехвату трафика? На скорость обработки грешил сначала, но даже с гигантскими ожиданиями трафика в 10 секунд не дали результат.

2. Если трафик включить вначале проекта и что бы он был всегда включен - это сильно увеличит нагрузку в многопотоке или нет?
 
Последнее редактирование:
Что-то похоже на то, что трафик в многопотоке общий...Т.е. запускаю в 1 поток - все четко перехвачивает, запускаешь 20 потоков - не хочет перехватывать трафик..., То же самое если использовать в 70 потоков - lock для перехвата трафика - если есть очередь - нету проблем с решением и перехватом трафика.

@Sergodjan У вас реально трафик общий для всех потоков? Если да, то есть ли выход, что бы у каждого потока был свой трафик? Кроме lock.
 
Что-то похоже на то, что трафик в многопотоке общий...Т.е. запускаю в 1 поток - все четко перехвачивает, запускаешь 20 потоков - не хочет перехватывать трафик..., То же самое если использовать в 70 потоков - lock для перехвата трафика - если есть очередь - нету проблем с решением и перехватом трафика.
если трафик общий и функция GetTraffic() всегда очищает весь трафик потока.... то как он тогда появляется в других потоках ? ;-)
 
Я так понял если обьявить static переменные, они будут передаваться между потоками. Проблема наверное была именно в этом, что трафик передавал в public static string Zadanie
 
Я так понял если обьявить static переменные, они будут передаваться между потоками. Проблема наверное была именно в этом, что трафик передавал в public static string Zadanie
static :ap: естественно. все что статично, будет затираться другими потоками.
 
Я так понял если обьявить static переменные, они будут передаваться между потоками. Проблема наверное была именно в этом, что трафик передавал в public static string Zadanie
самый оптимальный вариант тут пробовать project.Context. У меня тоже при подобной проблеме были приколы с пересечением данных между профилями.
 
Я так понял если обьявить static переменные, они будут передаваться между потоками. Проблема наверное была именно в этом, что трафик передавал в public static string Zadanie
[ThreadStatic] в помощь
 
  • Оценить
Реакции: The_vAe
Такая же, вроде. Может, я что-то не понимаю, но ситуации идентичны.
проблема старой темы в том, что зенно использует потоки покругу не закрывая их, и как итог в [ThreadStatic] переменных остаются значения от прошлых работ потоков. Но в текущей задаче ничто не мешает в начале шаблона обнулять такие переменные
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)