C #, wie erreicht man etwas im aktuellen Thread, das in einem anderen Thread erstellt wurde?

Ich schreibe eine Chat-Client / Server-App mit C # und habe ein Problem mit dem Threading. Ich habe diesen einfachen Code geschrieben, um mein Problem zu zeigen.

Ich habe thread_1 zum Anzeigen des Formulars verwendet, aber es wird nur eine Sekunde angezeigt (möglicherweise hat thread_1 das Formular beendet und geschlossen, aber ich habe gesagt, dass es lebt!). Thread_2 versucht die im Haupt-Thread erstellte texBox zu erreichen, zeigt mir aber:

"Threadübergreifender Vorgang nicht gültig: Steuerelement 'textBox2', auf das von einem anderen Thread als dem Thread zugegriffen wurde, auf dem es erstellt wurde."

Ich weiß nicht, wie ich das erste Problem lösen soll, aber ich habe das zweite Problem mit BackgroundWorker gelöst, aber ich mache es gerne mit Thread. Gibt es irgendeinen Weg?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    Thread t1;
    Thread t2;


    private void button1_Click(object sender, EventArgs e)
    {

        t1 = new Thread(doThread1);
        t1.Name = "thread_1";

        t2 = new Thread(doThread2);
        t2.Name = "thread_2";

        t1.Start();
        t2.Start();

        MessageBox.Show(t1.IsAlive.ToString());
    }

    private void doThread1()
    {
        Form frm2 = new Form();
        frm2.Show();
    }


    private void doThread2()
    {
        try
        {
            for (int j = 10000; j > 0; j--)
                textBox.Text = j.ToString();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }


}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage