Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Закрытая тема
 
Опции темы
Старый 25.08.2011, 21:37   #1
Заблокирован
 Пехотинец
Аватар для fesssi
 
fesssi скоро будет известенfesssi скоро будет известенfesssi скоро будет известенfesssi скоро будет известенfesssi скоро будет известен
Регистрация: 14.11.2009
Сообщений: 64
Популярность: 425
Сказал(а) спасибо: 35
Поблагодарили 134 раз(а) в 56 сообщениях
Отправить сообщение для fesssi с помощью ICQ Отправить сообщение для fesssi с помощью Skype™
 
По умолчанию События и делегаты

Есть такой код:
Вариант многопоточного чекера.
Запускается много потоков отсюда:

Код:
рrivate void button_start_Click(object sender, EventArgs e)
        {
          
            int nOfTread = (int) numeriс_nOf_Threds.Value;
            nOfTreads = nOfTread;
            threads = new Thread[nOfTreads];
              richTextBox_log.Text += "ПРОВЕРКА ЗАПУЩЕНА!!!" + "\n";
            
            for (int i = 0; i < nOfTreads; i++)
            {
                
                threads[i] = new Thread(Conect_tu_new);
               threads[i].IsBackground = true;
                threads[i].Start();
                          
            } 
          
        }
Тут в этот методе Идет создание массива классов где идет ПОСТ запрос с указаным Логином и паролем:

Код:
private void Conect_tu_new()
        {
            Post_class[] clafoget = new Post_class[user_list.Count()];
            int[] rezultcount = new int[user_list.Count];
            while (user_list.Count >= 1)
            {

                Monitor.Enter(this);
                string textstring = user_list[0];
                user_list.Remove(textstring);
                
//Тут ниже переделал конструктор класса по умолчанию что бы принимал 2 значения типа ЛОгин:пароль и прокси лист.
                clafoget[class_count] = new Post_class(textstring,proxy_list);
             
           Monitor.Exit(this);

              clafoget[class_count].Run(); // Запуск ПОСТ в классе
              class_count++;

                }
            MessageBox.Show("Проверка окончена!!!");

        }
Ну и есть метод где будет обрабатываться результат пост запроса:

Код:
private void obrabotka(string rezult, string user)
        {
            
            if (checkBox_log.Checked) {File.AppendAllText(patch_log,user+"\n");}
           // ТУТ проводятся манипуляции с результатом запроса 

        }
НУ и сам вопрос и просьба!!

Объясните как используя делегаты и события сделать так что если ответ в объекте класса который работает в потоке при получении ответа после пост запроса вызвать метод ОБРАБОТКА и передать в него полученный ответ?????

Просьба сюда меня с таким кодом не посылать: [Ссылки могут видеть только зарегистрированные пользователи. ]
я только учусь)

Еще просьба если есть возможность приведите яркие примеры или дайте ссылку на понятный исходник (или киньте ссылку в личку обещаю хранить тайну))))

Думаю поднятый мною вопрос будет многим интересен!!!!

Последний раз редактировалось fesssi; 25.08.2011 в 21:39.
 
Пользователь сказал cпасибо:
Ar4i[Work] (02.09.2011)
Старый 25.08.2011, 23:25   #2
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: События и делегаты!!! Наведите пример или помогите!!!!

если к форме обращаться, то
this.obrabotka("","");

Если запись в переменные :
this.peremennaya1="ololotrololo";

Если в пользовательские элементы:
textBox1.Invoke(new EventHandler ( delegate{textBox1.Text="ololo";}));

Еще не понятно зачем использовать void обработки??? Если результат распаршивания будет текст, не проще ли использовать обычную процедурку:

private string obrabotka(string rezult, string user)
{
string resultat="";
if (checkBox_log.Checked) {File.AppendAllText(patch_log,user+"\n");}
// ТУТ проводятся манипуляции с результатом запроса
return resultat;
}

То есть результат обращения будет ответ распаршенный.

Последний раз редактировалось Hermein; 25.08.2011 в 23:28.
 
Пользователь сказал cпасибо:
Ar4i[Work] (02.09.2011)
Старый 26.08.2011, 10:07   #3
Заблокирован
 Пехотинец
Аватар для fesssi
 
fesssi скоро будет известенfesssi скоро будет известенfesssi скоро будет известенfesssi скоро будет известенfesssi скоро будет известен
Регистрация: 14.11.2009
Сообщений: 64
Популярность: 425
Сказал(а) спасибо: 35
Поблагодарили 134 раз(а) в 56 сообщениях
Отправить сообщение для fesssi с помощью ICQ Отправить сообщение для fesssi с помощью Skype™
 
По умолчанию Re: События и делегаты!!! Наведите пример или помогите!!!!

Цитата:
Сообщение от HermeinПосмотреть сообщение
если к форме обращаться, то
this.obrabotka("","");

Если запись в переменные :
this.peremennaya1="ololotrololo";

Если в пользовательские элементы:
textBox1.Invoke(new EventHandler ( delegate{textBox1.Text="ololo";}));

Тут плиз попбробней ваще недогнал? зачем это написано... Я виже делегат и вроде создание события но как оно отработает если реально будет вызвано из потока не основного.
Цитата:
Сообщение от HermeinПосмотреть сообщение
Еще не понятно зачем использовать void обработки??? Если результат распаршивания будет текст, не проще ли использовать обычную процедурку:

private string obrabotka(string rezult, string user)
{
string resultat="";
if (checkBox_log.Checked) {File.AppendAllText(patch_log,user+"\n");}
// ТУТ проводятся манипуляции с результатом запроса
return resultat;
}

То есть результат обращения будет ответ распаршенный.

Да тут шол парсинг текста. НО только этот метод вызывался в мониторе что бы потоки вместе туда не входили... Вот и потому... Сделать парсинг текста в классе где пост запрос нет смысла так как в результате надо будет возвращать много значений.

Мне надо пример: как описать такое событие что бы из фонового потока где выполняется пост запрос с конкретный логином:паролем вызывался метод в основном потоке формы и получал результат запроса (где и парсился).
 
Старый 26.08.2011, 17:34   #4
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: События и делегаты!!! Наведите пример или помогите!!!!

я же тебе ответил:
задаем ссылку на вызов и вызываем, чтобы вызвать процедуру, или использовать переменные обращаемся к основной форме : this.textBox1.Text
это нужно для фонового потока:

например надо заюзать значения из рича, то многочисленные обращения, особенно из кучи потоков могут вызвать исключения и для этого в потоке создаем новую переменную:

string ololo = this.textBox1.Text;
и в потоке потом используем эту переменную ololo, для записи в переменные формы так же просто this.trololo=ololo; прям из фонового потока, только обращение к изменению значений элементов формы используют делегаты.
 
2 пользователя(ей) сказали cпасибо:
Ar4i[Work] (30.08.2011), fesssi (26.08.2011)
Закрытая тема


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отлов события отката хирки slikon Общение разработчиков 9 22.08.2011 02:17

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 14:17.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net