1. C# / Говнокод #16419

    +134

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Management;
    using System.Management.Instrumentation;
    using System.Runtime.InteropServices;
    using System.Net;
    using System.IO;
    using System.Text.RegularExpressions;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                
                HttpWebRequest prreq = (HttpWebRequest)HttpWebRequest.Create("http://hideme.ru/proxy-list");
                HttpWebResponse prresp = (HttpWebResponse)prreq.GetResponse();
                StreamReader rprox = new StreamReader(prresp.GetResponseStream());
                int proxint = Convert.ToInt32(rprox);
                string sprox = proxint.ToString();
                string allproxy = "";
                var proxy = Regex.Matches(sprox, @"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}");
                foreach (Match p in proxy)
                {
                    allproxy += p.Value + Environment.NewLine;
                }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Form1 fm4 = new Form1();
                if (fm4.ShowDialog() == DialogResult.OK) { }
            }
        }
    }

    Запостил: jkhne4pijgberg, 24 Июля 2014

    Комментарии (29) RSS

    • int proxint = Convert.ToInt32(rprox);
      string sprox = proxint.ToString();

      што это?
      Ответить
    • >>WindowsFormsApplication1
      >>Form1

      видали

      >>Environment.NewLine

      Претензии на кроссплатформеность?
      Ответить
    • > using System.Threading.Tasks;

      Импортируем многопоточность, но на сайт заходим синхронно в потоке гуя? М-да.
      Ответить
      • Ну это как AsParallel - написал и все стало ниибаца-параллельно.
        Ответить
      • > на сайт заходим синхронно в потоке гуя
        P.S. А на ведре за такое выбрасывают исключение ;)
        Ответить
        • а надо бы руку отрывать
          Ответить
          • уже оторвали, поэтому так и пишут - чем есть )
            Ответить
            • Не будем уточнять чем, меня и так за пошлость минусуют)
              Ответить
              • Пластмассовыми руками пишут; голосом надиктовывают; поворачивают голову перед камерой и распознают жесты; в крайнем случае - через распознаватель мыслей надумывают...
                А теперь минусуйте за пошлость.
                Ответить
                • его минусуйте, не меня
                  Ответить
                  • Да да, господа. Только подумайте, сколько можно сделать пошлого с распознавателем мыслей!
                    Ответить
          • >P.S. А на ведре за такое выбрасывают исключение ;)
            Винт с подходящей резьбой всегда найдётся:
            System.Windows.Forms.Control.CheckForIll egalCrossThreadCalls
            System.Web.UI.Page.VerifyRenderingInServ erForm(...)
            А вообще, разработчикам ядра, за такие перлы уши надо отрывать.
            За такую "заботу" на низком уровне о клиенте... Хоть от препрцессора-бы зависимость сделали...
            Ответить
            • Скорее всего, гугловцев просто заебали индусы, которые делают сетевые запросы в ui потоке, а потом юзеры ругаются, что на ведре все лагает (не забываем о том, какие лаги в мобильном инете)... Отсюда и такое кардинальное решение - бить по рукам.
              Ответить
              • Подвергать ведро-анафеме
                Ответить
              • А получили кучу наваленного говна:
                bgGac = new System.ComponentModel.BackgroundWorker();
                bgGac.DoWork += new System.ComponentModel.DoWorkEventHandler(this.bgGac_DoWork);
                void bgGac_DoWork(Object sender, System.ComponentModel.DoWorkEventArgs e)
                {
                    this.Invoke((MethodInvoker)delegate { DoLongUITask(); });
                }


                Или так:
                void bgGac_DoWork(Object sender, System.ComponentModel.DoWorkEventArgs e)
                {
                    this.Invoke((MethodInvoker)delegate { TextBox1.Text=value1; });
                    this.Invoke((MethodInvoker)delegate { TextBox2.Text=value2; });
                    this.Invoke((MethodInvoker)delegate { TextBox3.Text=value3; });
                ...
                }

                Так что индусы как раз и писали эти проверки.
                Ответить
                • > А получили кучу наваленного говна
                  Эээ... это xamarin? На жабе через AsyncTask вроде бы неплохо смотрелись асинхронные запросы.

                  > Так что индусы как раз и писали эти проверки.
                  Ну а как еще поступить? Если в ui треде случится синхронный блокирующий read или поиск dns - морда тупо повиснет, что очень неприятно для юзера. Как еще заставить программистов индусов делать запросы в бекграунде, кроме как давать по рукам за запрос в ui треде?
                  Ответить
                  • >Эээ... это xamarin? На жабе через AsyncTask вроде бы неплохо смотрелись асинхронные запросы.
                    Это - старый, добрый WinForms.
                    http://msdn.microsoft.com/en-us/library/0xb61xs7%28v=vs.110%29.aspx
                    >Ну а как еще поступить?
                    1) Поставить Cursor.Current=WaitCursor (Забыл уже как там оно правильно называется)
                    2) Прокачать насос сообщений (Надмозг - перевод MessagePump [Очередь сообщений]).
                    >Как еще заставить программистов индусов делать запросы в бекграунде, кроме как давать по рукам за запрос в ui треде?
                    А это уже дело индусов как они инструмент используют.
                    Код дающий по рукам, мог написать только индус со стажем.
                    Ответить
                    • > Это - старый, добрый WinForms.
                      Эм, а я то о андроиде :) Я с винформс вообще не работал, и х.з. как там что сделано... Поэтому мне сложно судить, правильно ли поступил M$.

                      > А это уже дело индусов как они инструмент используют.
                      Ну вот гуглу надоело, что их ругают за косяки индусов "андроид говно, у него морда в половине приложений вечно виснет", "а вот на иосе проги не лагают, когда лезут в сеть" и т.п. Советы и просьбы не помогали. Вот они где-то в районе андроида 3.0 и приняли такое решение: "или лезьте к своим сраным серверам через сраный GPRS в фоне или идите нахуй с нашей платформы".

                      > прокачать насос сообщений
                      Во время блокирующего чтения сокета? Удачи.
                      Ответить
                    • > Код дающий по рукам, мог написать только индус со стажем.
                      Было:
                      - индус запускает код
                      - на его wifi все работает нормально
                      - индус продает код
                      - юзеры с GPRS'ом жалуются на прогу, да и на саму ось до кучи (с точки зрения юзера: тупят многие проги = тупит ось)
                      - у гугла пригорает

                      Стало:
                      - индус запускает код
                      - ось дает по рукам на первом же запуске проги
                      - индус бежит читать доку
                      - индус исправляет код как положено
                      - ???
                      - профит

                      Что плохого то?
                      Ответить
                      • >> индус бежит читать доку

                        В этот момент индусу может стать плохо
                        Ответить
                      • >- юзеры с GPRS'ом жалуются на прогу, да и на саму ось до кучи (с точки зрения юзера: тупят многие проги = тупит ось)
                        Хомячки... На маздайке тоже жаловались, пока M$ не сделал обязательную сертификацию дров.
                        При том, что проверяли они только на ревью. Без рантаймовского KeBugCheck.

                        >- ось дает по рукам на первом же запуске проги
                        >Что плохого то?
                        Лучше это делать во время ревью кода, а не средствами оси. Иначе получилось, что в ведройде > 3.0, часть программ начала тупо сыпаться, за что гуголь наверня отхватил кучу лулзов.
                        ...Ну и лучи поноса с обоих сторон...
                        Ответить
      • так там
        using System.Collections.Generic;
        using System.ComponentModel;
        using System.Data;
        using System.Drawing;
        using System.Linq;
        using System.Text;
        using System.Threading.Tasks;
        
        using System.Management;
        using System.Management.Instrumentation;
        using System.Runtime.InteropServices;


        Нахуй не нужны. Но видимо с нимы оно работает быстрее
        Ответить
        • Видимо это тестовое приложение. В нём писалось куча кода для теста, а потом стиралось.
          После этого и накопился слой перхоти, который при компиляции в IL будет по любому ликвидирован.

          В студии, через "Command Window", вся лишняя перхоть чистится через "Edit.RemoveAndSort"
          Ответить
          • Можно решарпер поставить и настроички задать - ляпота. Вообще что бы не говорили VS очень удобная Ide а с решом такое ощущение, что код льется телепатически из головы на экран
            Ответить
            • > код льется телепатически из головы на экран
              Как будто это что-то хорошее

              "SQL, Lisp, and Haskell are the only programming languages that I've seen where one spends more time thinking than typing."
              --- Philip Greenspun
              Ответить
    • а в чем проблема данного кода?
      Ответить

    Добавить комментарий