.NET 4.x Переделать код, чтобы POST-запросы отправлялись последовательно в 1 поток - C#

Узнай цену своей работы

Формулировка задачи:

Есть пример многопоточной отправки пост запросов через проски Чарлеса, нужно переделать чтобы запросы отправлялись последовательно в 1 поток
namespace bot
{
    public partial class Form1 : Form
    {
        readonly ParallelOptions o = new ParallelOptions();
        private Thread t;
        public Form1()
        {
            InitializeComponent();
        }
    private void button3_Click(object sender, EventArgs e)
        {
            t = new Thread(s_w);
            t.Start();
        }
 
        string send_POST(string url, string post)
        {
            string Response_POST = "", StrNewValue;
            try
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method = "POST";
                req.Proxy = new WebProxy("127.0.0.1", 8888);
                req.ContentType = "application/x-www-form-urlencoded";
                StrNewValue = post;
                req.ContentLength = StrNewValue.Length;
                StreamWriter Soup = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
                Soup.Write(StrNewValue);
                Soup.Close();
                StreamReader stin3 = new StreamReader(req.GetResponse().GetResponseStream());
                Response_POST = stin3.ReadToEnd();
                stin3.Close();
            }
            catch { }
            return Response_POST;
        }
 
        private void s_w()
        {
            o.MaxDegreeOfParallelism = Convert.ToInt32(numericUpDown1.Value);
            Parallel.ForEach(GetLine(), o,
                line => send_POST("http://game-r01vk.rjgplay.com/command/", line));
        }
 
        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
 
        }
        IEnumerable<string> GetLine()
        {
            string[] line = null;
            if (richTextBox1.InvokeRequired)
            {
                richTextBox1.Invoke(
                    new Action(() =>
                    {
                        line = richTextBox1.Text.Split('|');
                    }
                    ));
            }
            else
                line = richTextBox1.Text.Split('|');
            return line;
        }

Решение задачи: «.NET 4.x Переделать код, чтобы POST-запросы отправлялись последовательно в 1 поток»

textual
Листинг программы
private void button1_Click_1(object sender, EventArgs e)
        {
            string text = this.send_POST("http://game-r01vk.rjgplay.com/command/", "<auth><auth_key>" + this.textBox2.Text + "</auth_key> <login>" + this.textBox1.Text + "</login></auth>");
            this.label1.Text = this.parse(text, "<sid>", "</sid");
            string text1 = this.send_POST("http://game-r01vk.rjgplay.com/command/", "<get_game_info sid=\"" + this.label1.Text + "\"/>");
            this.label2.Text = this.parse(text1, "<leader", "</leader");
            string text2 = this.send_POST("http://game-r01vk.rjgplay.com/command/", "<update sid=\"" + this.label1.Text + "\"/>");
        }
        string res;
        private string parse(string text, string ind1, string ind2)
        {
            res = "";
            string[] stringSeparators = new string[] { "\n" };
            string[] result = text.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);
            foreach (string stroka in result)
            {
                if (stroka.IndexOf(ind1) != -1)
                {
                    string[] Moneyy = stroka.ToString().Split((Convert.ToChar(">")));
                    res = Moneyy[1].Replace(ind2, "");
                }

            }

            return res;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.643 из 5