C #, jak osiągnąć coś w bieżącym wątku utworzonym w innym wątku?

Piszę aplikację klient / serwer na czacie za pomocą c # i mam problem z wątkowaniem. Napisałem ten prosty kod, aby pokazać mój problem.

Użyłem thread_1 do pokazania formularza, ale po prostu pokazałem to sekundę (może thread_1 zakończył i zamknął formularz, ale IsAlive powiedział, że żyje!). Thread_2 próbuje dotrzeć do texBox, który został utworzony na głównym wątku, ale pokazuje mi to:

„Nieprawidłowa operacja wątków: kontrola„ textBox2 ”uzyskiwana z wątku innego niż wątek, w którym została utworzona.”

Nie wiem jak rozwiązać pierwszy problem, ale rozwiązałem drugi problem z BackgroundWorker, ale lubię to robić za pomocą wątku. Czy jest jakiś sposób?

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


}

questionAnswers(2)

yourAnswerToTheQuestion