Получение текста из TextBox в потоке

187
29 апреля 2018, 19:27

Работаю с xNet, возникла проблема. Нужно получить информацию из combobox1 + textbox1 в потоке. Выдает ошибку: "Недопустимая операция в нескольких потоках: Попытка доступа к элементу управления 'combobox1/textbox1' не из того потока, в котором он был создан".

    public void Test()
    {
        while (START)
        {
            try
            {
                using (var request = new HttpRequest())
                {
                    request.UserAgent = Http.ChromeUserAgent();
                    var Mparams = new RequestParams();
                    Mparams["milk"] = "sun" + comboBox1.Text + textBox1.Text;
                    string Mresponse = request.Post("Сайт", Mparams).ToString();
                    if (Mresponse.Contains("\"success\":true"))
                    {
                        richTextBox1.Invoke(new Action(() => { richTextBox1.AppendText("TRUE\n"); }));
                    }
                    else if (Mresponse.Contains("\"success\":false"))
                    {
                        richTextBox1.Invoke(new Action(() => { richTextBox1.AppendText("FALSE\n"); }));
                    }
                    else
                    {
                        richTextBox1.Invoke(new Action(() => { richTextBox1.AppendText("ERROR OCCURED\n"); }));
                    }
                    var cParams = new RequestParams();
                    cParams["candy"] = "sweet" + comboBox1.Text + textBox1.Text;
                    string cResponse = request.Post("Сайт", cParams).ToString();
                    if (cResponse.Contains("\"code\":0"))
                    {
                        richTextBox1.Invoke(new Action(() => { richTextBox1.AppendText("TRUE\n"); }));
                    }
                    else if (cResponse.Contains("\"code\":1"))
                    {
                        richTextBox1.Invoke(new Action(() => { richTextBox1.AppendText("FALSE\n"); }));
                    }
                    else
                    {
                        richTextBox1.Invoke(new Action(() => { richTextBox1.AppendText("ERROR OCCURED\n"); }));
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
                Thread.CurrentThread.Abort();
                return;
            }
        }
    }

Про Invoke, Delegate, BackgroundWorker, Dispatcher знаю. Но, не знаю, как правильно организовать получение данных в параметрах запроса xNet. Надеюсь на вашу помощь! Благодарю.

READ ALSO
Способы создания гибкого ПО

Способы создания гибкого ПО

В общем, такая проблема: У меня есть семейство классов, очень близких по смыслу

135
как сделать less.less в less.min.css в phpStorm?

как сделать less.less в less.min.css в phpStorm?

В phpStorme есть watcher который компилит стили less в cssА как минифицировать css, который собран из less? - т

225
Структура SPA приложения

Структура SPA приложения

совсем недавно решил познакомиться с Vuejs и соответственно с созданием одно-страничного приложения

280