ボタン1が押されたらスレッド開始して処理を始め、
ボタン2が押されたらそのスレッドを停止するコードはどう書けばいいのでしょうか?

private void button1_Click(object sender, System.EventArgs e)
{
  System.Threading.Thread.CurrentThread.Name = "メインスレッド";
  Thread t = new Thread(new ThreadStart(my_sub));
  t.Start();
}

private void button2_Click(object sender, System.EventArgs e)
{
  ????
}

????をどう書けばいいかということです。
t.Abort(); では駄目ですよね