Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Постоянные тормоза, без потоков вообще никак? 
:(
    Опции темы
Dobermann
Дата 14.2.2010, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: 1
Всего: 0



Насколько я начинаю понимать, без потоков такая прога "отвиснет" только после полной отработки (т.е. когда закончится список проксей)
Код

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog proxy = new OpenFileDialog();
            proxy.ShowDialog();
            prx = proxy.FileName;
            Proxy();
        }
 
        public void Proxy()
        {
            string tempLine;  // пример 218.201.21.176:80
            StreamReader readProxyList = new StreamReader(@prx);
            while ((tempLine = readProxyList.ReadLine()) != null)
            {
                    WebProxy proxyObject = new WebProxy("http://" + tempLine);
                    WebRequest req = WebRequest.Create("http://mail.ru/");
                    req.Proxy = proxyObject;
                    WebResponse res = (WebResponse)req.GetResponse();                    
                    listBox1.Items.Add(tempLine + " (" + req.Timeout + ")");
            }
        }
з.ы. это простейшая чекалка

PM   Вверх
Экскалупатор
Дата 14.2.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



да. без потоков никак.
 smile 
ИМХО
методы конечно жесткие... с какой целью был создан метод Proxy вообще не понятно. точнее, для чего, понятно, что бы отделить и не писать все в обработчике(или я не прав?) вот только лучше от этого не стало...
PM MAIL ICQ   Вверх
Dobermann
Дата 15.2.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: 1
Всего: 0



перед вызовом этого метода потоки реализовывались, просто вырезал, думал мож ты че дельного предложешь, а не ...
PM   Вверх
Экскалупатор
Дата 15.2.2010, 18:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



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

Добавлено через 3 минуты и 5 секунд
а для чего проверять доступность всех Proxy? ты ж одновременно со всеми все равно не будешь. может проще проверить конкретный адрес и, если он доступен, то обратиться к нему, а если не доступен перейти к следующему, пока не найдется рабочий. 
это будет быстрее нежели ждать пока провериться весь список.
хотя я не знаю специфики приложения, а по сему могу и ошибаться...

Добавлено через 8 минут и 55 секунд
к тому же тебе наверняка придется делать проверку этого прокси перед использованием...
PM MAIL ICQ   Вверх
Dobermann
Дата 16.2.2010, 04:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: 1
Всего: 0



Цитата(Экскалупатор @  15.2.2010,  18:21 Найти цитируемый пост)
а для чего проверять доступность всех Proxy?

Да это просто пример зависания проги(без потоков)...а проверять все - какие сдохли а какие нет, ведь те что сдохли предпочтительней будет удалить из списка...
PM   Вверх
Экскалупатор
Дата 16.2.2010, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 11
Всего: 24



я ж и говорю, что если проверять конкретный адрес перед самым его использованием, то это будет быстрее нежели проверять все сразу. и тогда, может быть, можно было бы обойтись без потоков(хотя и сомнительно это).
PM MAIL ICQ   Вверх
GavriKos
Дата 17.2.2010, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 8.8.2007
Где: Донецк, Украина

Репутация: нет
Всего: 1



Есть еще вариант, без реализации потоков в лоб. Реализовать все таймером. Т.е. чтобы по очередной итерации цикла запускался таймер и цикл ждал его завершения. Но это неспортивно )
--------------------
Донецкая группа IT - присоединяемся
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0755 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.