private void main()
{
while (true)
{
string url;
lock (locks) // доступ только с одного потока, блокирует доступ с остальных и они в процессе ожидания.
{
if (i > lines.Length - 1) // проверяем не весь ли массив прошли
{
break; // останавливаем поток
}
url = lines[i]; // здесь понятно
i++; // всё равно что i = i +1; или i += 1;
if (!url.Contains("http://")) // проверяем, если в линке нету http:// начинаем цикл заново. url.Contains("http://") == False - тоже самое
{
continue; // завершаем потом
}
}
CookieCollection Cooks = new CookieCollection(); // создаём куки менеджер, автоматическии обрабатытает куки
get(url, Cooks); // отправляем get запрос
}
}
Последний раз редактировалось thezoke; 06.03.2012 в 14:56.
многопоток не работает!доходят только два запроса!
________________
Не забываем ставить спасибо или жать + на весах! Skype-hammer3399 Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
threads = new Thread[(int)numericUpDown1.Value];
for (int q = 0; q < threads.Length; q++)
{
threads[q] = new Thread(main); // поток будет запускать функцию main
threads[q].Start(); // запускаем
}
равно на все 100%
єтому:
Цитата:
for (int q = 0; q < (int)numericUpDown1.Value; q++)
{
Thread threads = new Thread(main); // поток будет запускать функцию main
threads.Start(); // запускаем
}
Каждый раз будет создаваться другой поток и первый никуда не денется)
+ Метод МАЙН будет для каждого потока свой индивидуальный(клавное парвильно потокобезопасность сделать)
Ну если не знаешь как работать с потоками, лучше туда не лезть. Но а вообще для этого существует библиотека майкрософта.
Метод Abort - Вызывает исключение ThreadAbortException в вызвавшем его потоке для того, чтобы начать процесс завершения потока. Вызов данного метода обычно завершает поток.
И для этого в конце процедуры пишешь
Код:
Thread.CurrentThread.Abort();
________________
Разработка программ на заказ, все вопросы skype - the-boxi, ICQ - 616027961
Последний раз редактировалось the-boxi; 28.03.2012 в 00:01.
Ну если не знаешь как работать с потоками, лучше туда не лезть. Но а вообще для этого существует библиотека майкрософта.
Метод Abort - Вызывает исключение ThreadAbortException в вызвавшем его потоке для того, чтобы начать процесс завершения потока. Вызов данного метода обычно завершает поток.
И для этого в конце процедуры пишешь
Код:
Thread.CurrentThread.Abort();
Я умею работать с потоками.
Я имел в виду что потоки могут быть вечными(целенаправленно, например ожидание события)... Или ты можешь послать в поток такую задачу, которая никогда не выполнится(не намеренно), но будет работать правильно... Потому лучше потоки делать с глобальной областью видимости(для класса).