Я не захожу так далеко, он выдает ошибку при доступе к textBox1 и textBox2

уверен, что я делаю это правильно, но у меня есть следующий код, который я использую (нажмите кнопку 1, выполните _DoWork). Вопрос заключается в следующем: как вызвать пользовательский интерфейс, чтобы получить значения textbox1 и textbox2, поскольку они не могут быть вызваны, поскольку они находятся в другом потоке. Должен ли я использовать диспетчеров?

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        if (textBox1.Text == "")
        {
            MessageBox.Show("Please enter a username and password", "Error", MessageBoxButton.OK, MessageBoxImage.Warning);
        }
        else
        {
            bw.DoWork += new DoWorkEventHandler(bw_DoWork);
            bw.RunWorkerAsync();
        }
    }

    private void bw_DoWork(object sender, DoWorkEventArgs e)
    {
        Console.WriteLine("asd");
        UserManagement um = new UserManagement(sm.GetServerConnectionString());
        if (um.AuthUser(textBox1.Text, textBox2.Password))
        {
            MainWindow mw = new MainWindow();
            mw.Show();
            this.Close();
        }
        else
        {
            if (um.Timeout)
            {
                MessageBox.Show("Could not connect to server, please check your configuration", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            else
            {
                MessageBox.Show("Incorrect username or password", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }

        }
    }

Должен ли я использовать фоновый работник?

Ответы на вопрос(2)

Ваш ответ на вопрос