Hintergrund-worker richtige Weg, um Zugriff auf UI

Ich bin mir nicht sicher, ob ich hier mache, richtig, aber ich habe den folgenden code, den ich verwende (klicken Sie auf button1, tun die _DoWork). Die Frage ist: wie kann ich rufen Sie die Benutzeroberfläche, um die Werte von textbox1 und textbox2 wie Sie können nicht genannt werden, da Sie auf einem anderen thread. Soll ich mich mit Disponenten?

    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);
            }

        }
    }

Soll ich mich mit hintergrund-Arbeiter?

InformationsquelleAutor Prisoner | 2011-02-22
Schreibe einen Kommentar