Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2016, 12:27   #21
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

сделайте свой start нормальным.

вместо
Код:
start(object data)
Код:
start(string line, string message, string proxy)
тогда
у вас вызов станет таким:
Код:
Parallel.ForEach(lines, opt, a => start(a, MessageText, proxy));
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.08.2016, 12:35   #22
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
сделайте свой start нормальным.

вместо
Код:
start(object data)
Код:
start(string line, string message, string proxy)
тогда
у вас вызов станет таким:
Код:
Parallel.ForEach(lines, opt, a => start(a, MessageText, proxy));
так proxy у меня не string, а string[]. Их надо так же посылать по 1 как и lines
Lolidze вне форума Ответить с цитированием
Старый 22.08.2016, 12:46   #23
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

зачем их по 1 посылать, делать себе больно когда не надо?
come-on вне форума Ответить с цитированием
Старый 22.08.2016, 12:57   #24
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
зачем их по 1 посылать, делать себе больно когда не надо?
всм ? а как я потом их разделю ? мне нужно, чтоб было 1 зарос = 1 прокся, а если я пошлю прокси лист в метод и там буду разделять, то т.к у меня многопоточность, то 1 прокся != 1 акк, ее будут все юзать и до конца не дойдет
Lolidze вне форума Ответить с цитированием
Старый 22.08.2016, 13:05   #25
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

этот набор букв мало понятен
come-on вне форума Ответить с цитированием
Старый 22.08.2016, 13:12   #26
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

смотрите, мне нужно сделать гет запрос , где я использую данные из тхт , чтоб было удобно использую многопоточность. Работает так : есть метод, который принимает данные их тхт, он же
Код:
start(object dan)
есть код, который создает несколько потоков и вызывает функцию старт
Код:
var lines = File.ReadAllLines(path);
                var opt = new ParallelOptions
                {
                    MaxDegreeOfParallelism = 2//Лимит потоков
                };
                Parallel.ForEach(lines, opt, a => start(new string[] { a, MessageText }));
метод страрт принимает 2 аргумента : lines (данные из тхт ) он посылает построчно и MessageText (просто текст).
И я в методе работаю только с 1 строкой. Вот тоже самое нужно сделать и для проксей, чтоб построчно в метод посылалась, а не весь массив.
Я думаю сделать так :
Код:
int i=0;
Parallel.ForEach(lines, opt, a => gett(a, "12", proxy[i+1]));
но потом надо как-то обновиь переменную i , если прокси закончатся
Lolidze вне форума Ответить с цитированием
Старый 22.08.2016, 13:20   #27
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

то что вы делаете понятно и так, вас спрашивают нафига так делать
если вам надо чтобы запрос шел только по 1 проксе то выбирайте рандомом или вычислять индекс прокси по индексу строки, по сути дела это так и есть
если вам надо чтобы запрос по возможности отработал, даже если по какой то проксе выдаст отбой то вам нужен весь список проксей, и разруливать ситуацию внутри

Последний раз редактировалось come-on; 22.08.2016 в 13:25.
come-on вне форума Ответить с цитированием
Старый 22.08.2016, 13:24   #28
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
то что вы делаете понятно и так, вас спрашивают нафига так делать
если вам надо чтобы запрос шел только по 1 проксе то выбирайте рандомом, по сути дела это так и есть
если вам надо чтобы запрос по возможности отработал, даже если по какой то проксе выдаст отбой то вам нужен весь список проксей, и разруливать ситуацию внутри
хм, это идея.. я как то до этого не додумался )) Спасибо
Lolidze вне форума Ответить с цитированием
Старый 22.08.2016, 13:30   #29
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Lolidze Посмотреть сообщение
так proxy у меня не string, а string[]. Их надо так же посылать по 1 как и lines
ну и тип поменять то не вопрос.
я потому и сказал переделать на нормальные аргументы, ибо тогда не будет проблемы с разными типами.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.08.2016, 13:38   #30
Lolidze
Пользователь
 
Регистрация: 05.06.2016
Сообщений: 48
По умолчанию

а как принудительно остановить работу будущих потоков ?
тобишь тут
Код:
 var opt = new ParallelOptions
            {
                MaxDegreeOfParallelism = 2//Лимит потоков
            };
            Parallel.ForEach(lines, opt, a => gett(a, "12", proxy));
Lolidze вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
[C#] Как "вытащить" значения из string? GregRUS Помощь студентам 2 12.01.2012 04:08
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
Как "вытащить" данные из 1С 7.07.1 Феска БД в Delphi 2 18.03.2009 23:39
Перечисление в столбце. Как "вытащить" нужное? Помогите! Tatyana БД в Delphi 2 10.07.2007 09:25