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

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
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. Если трафик включить вначале проекта и что бы он был всегда включен - это сильно увеличит нагрузку в многопотоке или нет?
 
Последнее редактирование:

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
Что-то похоже на то, что трафик в многопотоке общий...Т.е. запускаю в 1 поток - все четко перехвачивает, запускаешь 20 потоков - не хочет перехватывать трафик..., То же самое если использовать в 70 потоков - lock для перехвата трафика - если есть очередь - нету проблем с решением и перехватом трафика.

@Sergodjan У вас реально трафик общий для всех потоков? Если да, то есть ли выход, что бы у каждого потока был свой трафик? Кроме lock.
 

Ахилес

Client
Регистрация
11.11.2020
Сообщения
869
Благодарностей
353
Баллы
63
Что-то похоже на то, что трафик в многопотоке общий...Т.е. запускаю в 1 поток - все четко перехвачивает, запускаешь 20 потоков - не хочет перехватывать трафик..., То же самое если использовать в 70 потоков - lock для перехвата трафика - если есть очередь - нету проблем с решением и перехватом трафика.
если трафик общий и функция GetTraffic() всегда очищает весь трафик потока.... то как он тогда появляется в других потоках ? ;-)
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
Я так понял если обьявить static переменные, они будут передаваться между потоками. Проблема наверное была именно в этом, что трафик передавал в public static string Zadanie
 

Ахилес

Client
Регистрация
11.11.2020
Сообщения
869
Благодарностей
353
Баллы
63
Я так понял если обьявить static переменные, они будут передаваться между потоками. Проблема наверное была именно в этом, что трафик передавал в public static string Zadanie
static :ap: естественно. все что статично, будет затираться другими потоками.
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 128
Благодарностей
486
Баллы
83
Я так понял если обьявить static переменные, они будут передаваться между потоками. Проблема наверное была именно в этом, что трафик передавал в public static string Zadanie
самый оптимальный вариант тут пробовать project.Context. У меня тоже при подобной проблеме были приколы с пересечением данных между профилями.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Я так понял если обьявить static переменные, они будут передаваться между потоками. Проблема наверное была именно в этом, что трафик передавал в public static string Zadanie
[ThreadStatic] в помощь
 
  • Спасибо
Реакции: Gunjubasik

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 128
Благодарностей
486
Баллы
83

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
Такая же, вроде. Может, я что-то не понимаю, но ситуации идентичны.
проблема старой темы в том, что зенно использует потоки покругу не закрывая их, и как итог в [ThreadStatic] переменных остаются значения от прошлых работ потоков. Но в текущей задаче ничто не мешает в начале шаблона обнулять такие переменные
 

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